Aktives Mitglied
Verehrte PSDler,
ich habe ein rein theoretische Frage an euch und wünsche mir u. U. eine Korrektur.
Nehmen wir an, ich habe eine Table `t1` in einer Datenbank. Diese ist immer und ständig von LESEN und SCHREIBEN (durch User) betroffen.
Ich würde gern per Cronjob - und nur für einen Moment - auf exakt diese `t1` ein LOCK WRITE machen, damit der Cronjob in Ruhe seine Informationen ergänzen kann.
Meine theoretische Frage (ein Zweiteiler):
1. Gäbe es eine zweite Automation, was passiert in der Zeit von dem, wenn dieser auch da was aktualisieren möchte? Best case: Wartet ... (Priorität beider CJ ist identisch)
2. Bleiben die Clients (User) für den "zachten" (zarten) Moment tatsächlich auf "Bitte warten ..."?
Warum ich frage: Im MySQL-Handbuch (online) steht, dass der LOCK sich auf den jeweiligen "thread" (Prozess) bezieht. Beide Cronjobs sowie die User haben aber andere (weitere) Threads ... daher zweifel ich, ob ich mein Vorhaben mit LOCK realisieren kann. Im Prozess selbst benötige ich das LOCK nicht ... ich will nur für das Update am Datensatz ein kurzes, aber benötigtes, Exklusivrecht genießen, damit niemand sonst da reinschreibt (weder der andere CJ, noch ein User).
"Flag setzen zwecks 'gesperrt' und dann" ist leider unglücklich in dem Szenario und nicht hilfreich.
Habt Dank und
beste Grüße.
EDIT: Engine: MyISAM ... nicht ganz unwichtig. ^^
ich habe ein rein theoretische Frage an euch und wünsche mir u. U. eine Korrektur.
Nehmen wir an, ich habe eine Table `t1` in einer Datenbank. Diese ist immer und ständig von LESEN und SCHREIBEN (durch User) betroffen.
Ich würde gern per Cronjob - und nur für einen Moment - auf exakt diese `t1` ein LOCK WRITE machen, damit der Cronjob in Ruhe seine Informationen ergänzen kann.
Meine theoretische Frage (ein Zweiteiler):
1. Gäbe es eine zweite Automation, was passiert in der Zeit von dem, wenn dieser auch da was aktualisieren möchte? Best case: Wartet ... (Priorität beider CJ ist identisch)
2. Bleiben die Clients (User) für den "zachten" (zarten) Moment tatsächlich auf "Bitte warten ..."?
Warum ich frage: Im MySQL-Handbuch (online) steht, dass der LOCK sich auf den jeweiligen "thread" (Prozess) bezieht. Beide Cronjobs sowie die User haben aber andere (weitere) Threads ... daher zweifel ich, ob ich mein Vorhaben mit LOCK realisieren kann. Im Prozess selbst benötige ich das LOCK nicht ... ich will nur für das Update am Datensatz ein kurzes, aber benötigtes, Exklusivrecht genießen, damit niemand sonst da reinschreibt (weder der andere CJ, noch ein User).
"Flag setzen zwecks 'gesperrt' und dann" ist leider unglücklich in dem Szenario und nicht hilfreich.
Habt Dank und
beste Grüße.
EDIT: Engine: MyISAM ... nicht ganz unwichtig. ^^