Das Programm geht jedes Mal zur Datenbank, um 10 Daten mit run_status=0 zu lesen,
Wenn eine Aufgabe ausgeführt wird, aktualisiert die Datenbank Felder
run_status=-1
bedeutet, dass diese Aufgabe gesperrt ist.
Nach Abschluss der Aufgabenausführung ist natürlich run_status = 0, was darauf hinweist, dass die Aufgabe entsperrt wurde.
Jetzt kommt das Problem. Wenn eine Aufgabe ausgeführt wird, befindet sich run_status=-1 aufgrund einer Ausnahme, z. B. wenn der Server das Programm während der Veröffentlichung plötzlich unterbricht, immer im gesperrten Zustand. Aber es wird nicht wirklich umgesetzt.
Jetzt müssen Sie einen Mechanismus entwickeln, um dies zu verhindern. Die aktuelle Umgebung kann Redis verwenden.
我发现这个问题太简单了。设置一个key,过期时间为60秒即可。每次检测这个key是否存在