Dobrý den,
jestli to chápu dobře. Řešením by bylo udělat bean která by měla tělo
while (true)
{
// zpracovani fronty
}
tato bean by implementovala interface BlockingQueue a to samé rozhraní
by implementovala i webova aplikace.
webova aplikace by ukladala na zasobnik pozadavky a beana "while (true)"
by frontu zpracovávala.
Pochopil jsem to dobře ?
Pokud ano, zřejmě budu muset thread ve kterém běží "while (true)"
uspávat, abych nevyžral všechny systémové prostředky. Je to tak ?
Předem děkuji,
Korecký
Dne 30.10.2011 11:25, Petr Přikryl napsal(a):
Hmm a nestacilo by Vam application scope beana ktera by davala prikazy
do fronty, fronty ktera je thread safe?
A pri pridani nejakeho prvky by ji neco vybiralo, napada me po ranu
bud jina beana, (ktera by mel while true, a volani fronty by bylo
blokujici) prip kdybyste to chtel mit casovane tak neco ze springu s
casovacem...
Jiank jako fronta mozna neco z BlockingQueue?
Anebo JMS? to je primo na tyto pripady. Asi bych volil JMS.
PP
On 30. říjen 2011 11:09:00, Vladislav Korecký wrote:
Dobrý den,
jsem začátečník s Java a měl bych na Vás jeden dotaz.
Mám zařízení naslouchající na TCP a které dokáže obsloužit jen
jednoho klienta (neumí více připojení současně). Jedná se o interface
k regulaci domu.
Píši si webovou aplikaci (s použitím Apache Wicket), která by
ovládala dům, ale řeším následující problém. Pokud se k webovým
stránkám přihlásí více klientů, vytvoří se více instancí na webovém
serveru a každá se bude snažit komunikovat s interface regulace, ale
to je nedokáže obsloužit.
Napadlo mě řešení s vytvořením systémové služby, která by pomocí
XML-RPC přijímala požadavky od webových aplikací a dávala by je do
zásobníku FIFO. Jednotlivé požadavky by posílala do regulace a
výsledek vracela zpět do webových aplikací.
Toto řešení má jednu chybu, nenajdu hosting (cenově dostupný) kam
bych mohl nainstalovat vlastní systémovou službu, takové služby
nabízí jen server hostingy a ty jsou moc drahé.
Lze tento problém nějak řešit přímo na aplikačním serveru ? Buď přes
nějaké sdílení session mezi instancemi téže aplikace nebo lze dokonce
vytvořit něco jako systémovou službu přímo v aplikačním serveru ?
Předem děkuji za nápady,
Korecký