Avatar billede Simon Praktikant
05. maj 2004 - 07:25 Der er 8 kommentarer og
1 løsning

message queue til distribueret system

Hej

Jeg skal udvikle et system, hvor et program som kører på en server skal foretage små jobs( herunder redigere filer). Programmet på serveren skal have jobs af forskellige clienter via internet. Men der er vigtigt at kun ét job afvikles af gangen. Hvordan gøres dette?

Jeg har selv overvejet at alle clienterne lægger deres kommandoer ned i en og samme tabel i en database. Programmet på serveren udlæser så en kommando af gangen. På denne måde er systemet distribueret, samtidg med at kun ét job afvikles af gangen. Databasen fungerer altså som kø.
Avatar billede Simon Praktikant
05. maj 2004 - 07:30 #1
Mit udviklingsmiljø er .NET.
Avatar billede arne_v Ekspert
05. maj 2004 - 07:34 #2
Det var en mulighed.

Andre muligheder:

- brug en rigtig message queue

- 2 tråde: 1 tråd med løkke der læser fra nettet og ligger jobs i en kø struktur,
  1 tråd med løkke der henter fra kø struktur og processer
Avatar billede Simon Praktikant
05. maj 2004 - 07:44 #3
ok, det lyder egentlig som en fin løsning. Men hvad vinder jeg ved denne løsning fremfor den med at bruge databasen som kø ud over at skulle kontakte databasen for nye messages hele tiden?
Avatar billede arne_v Ekspert
05. maj 2004 - 08:08 #4
Hvis køen er i memory fremfor på disk, så er performance jo meget bedre.
Avatar billede arne_v Ekspert
05. maj 2004 - 08:08 #5
Til gengæld overlever køen en genstart når den er i databasen.
Avatar billede arne_v Ekspert
05. maj 2004 - 08:09 #6
En rigtigt message queue har normalt både persistent messages (disk) og
ikke-persistent messages (memory).
Avatar billede Simon Praktikant
05. maj 2004 - 16:36 #7
Tak for dine fine råd og betragtninger. Der er helt sikkert noget der lige skal overvejes lidt. Gider du smide et svar :-)
Avatar billede arne_v Ekspert
05. maj 2004 - 18:02 #8
svar
Avatar billede arne_v Ekspert
05. maj 2004 - 18:02 #9
Og for en god ordens skyld:

rigtig message queue = IBM MQ, MS MQ, BEA MQ etc.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester