外部にバッチ ジョブがあります。そして、そのジョブを処理できるサーバーが複数あります。 ジョブは、特定の時間内に多数のサーバーのうちの 1 つによって取得され、処理されるようにしたいだけです。
この目的を達成するために、グローバルロックの仕組みを調べていたところ、mysqlのget_lock関数を発見しました。
また、すでにmysqlに依存しているので、この機能が使えると思います。
ただ、怪しいのは、グローバルロックの仕組みを探す場合、redisなどを使っているケースが多く、get_lockを使っているケースがなかなか見つからないことです。
ということで、mysql の get_lock に何か欠点があるのかどうかは疑問です。
私の現在の状況は、すでに mysql を使用していますが、redis は使用していません。
それでは、mysql の get_lock をグローバル ロックに使用できますか? それともmysqlのget_lockに何か欠点があるのでしょうか?
この質問は投票で終了しましたが、いくつかの提案が役に立つかもしれません。
私の理解では、同じデータセットを処理する複数のマシンがあるとします。データ項目の排他性を確保したいと考えています。データ利用者がデータを使用する前にロックを探して作成する必要がある、勧告的なロック メカニズムを検討しているようです。アドバイザリー ロックは最後の手段としてのみ使用してください: