Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zeitüberschreitung einer mysql++-Abfrage in C++

Sie können ein "Abbruch-ähnliches" Verhalten auf diese Weise implementieren:

Sie führen die Abfrage in einem separaten Thread aus, der weiter ausgeführt wird, unabhängig davon, ob das Timeout auftritt oder nicht. Die Zeitüberschreitung tritt im Hauptthread auf und setzt eine Variable auf "1", um anzuzeigen, dass sie aufgetreten ist. Dann tun Sie, was Sie in Ihrem Hauptthread tun möchten.

Sobald die Abfrage abgeschlossen ist, prüft der Abfrage-Thread, ob die Zeitüberschreitung aufgetreten ist. Wenn nicht, erledigt es den Rest der Arbeit, die es tun muss. Wenn es HAT, entsperrt es nur die Tische, die es gerade gesperrt hat.

Ich weiß, es klingt ein bisschen verschwenderisch, aber die Lock-Unlock-Periode sollte im Grunde sofort erfolgen, und Sie kommen dem gewünschten Ergebnis so nahe wie möglich.