Moin
Das Sperren ist deshalb in diesem Fall ok (*), weil die Prozesse in sich abgeschlossen sind, also sich nicht über mehrere Roundturns erstrecken. Außerdem werden Sperren automatisch aufgelöst, wenn die Datenbankverbindung wieder gelöst wird. Es wird also vermutlich keine Lost-Locks geben.
Das ist eine gute Nachricht
Bleibt nur noch das Risiko von Deadlocks.
Wie können die entstehen? Wenn ein Prozess einen geblockten DAtensatz findet geht er einfach zum nächsten über.
Außerdem musst Du darauf achten, dass die Prozesse auch irgendwann fertig werden, nicht dass Du dir Zombies ranzüchtest.
Die Prozesse arbeiten nur 1 Job ab. Ablauf ist so: Job aus DB holen (lock, lesen, status setzen, lock lösen) => Daten aus externer Quelle holen => in DB schreiben => Job aus DB löschen => Prozess-Ende => Aufruf neuer Prozess
So zum Ablauf.
Gruß Bobby
-> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
### Henry L. Mencken ###
-> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
### Viktor Frankl ###
ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)