Da draußen gibt es einen Batch-Job. Und es gibt mehrere Server, die diese Aufgabe übernehmen können. Ich möchte, dass der Auftrag nur zu einem bestimmten Zeitpunkt von einem der vielen Server abgeholt und bearbeitet wird.
Um diesen Zweck zu erreichen, habe ich bei der Untersuchung des globalen Sperrmechanismus die Funktion get_lock von MySQL entdeckt.
Da es bereits von MySQL abhängt, denke ich, dass diese Funktion verwendet werden kann.
Was die Leute jedoch misstrauisch macht, ist, dass die meisten von ihnen bei der Suche nach globalen Sperrmechanismen Redis usw. verwenden und es schwierig ist, Fälle mit get_lock zu finden.
Ich bezweifle also, dass get_lock von mysql irgendwelche Nachteile hat.
Meine aktuelle Situation ist, dass ich bereits MySQL verwende, aber nicht Redis.
Kann ich get_lock von MySQL für globale Sperren verwenden? Oder gibt es irgendwelche Mängel von get_lock in MySQL?
已经投票关闭了这个问题,但是一些建议可能会有帮助。
据我了解,您有几台处理相同数据集的机器 - 您希望确保数据项的独占性。您似乎正在考虑一种咨询锁定机制,即数据使用者需要寻找锁定然后在使用数据之前创建它们。咨询锁定应该只作为最后的选择使用:
请尝试重新发布带有数据接收器和数据源以及可用资源的详细信息,而不是询问是否适合一个未定义的问题的解决方案。