/ / mysqlのストアドプロシージャの同期 - mysql、ストアドプロシージャ、同期

mysqlのストアドプロシージャの同期 - mysql、ストアドプロシージャ、同期

私は2つのアプリケーションを持っており、どちらもMySQLの同じストアドプロシージャを使用しています。 私は、この手順を同期させることを望んでいます。つまり、あるアプリケーションがそれを呼び出す間、もう1つは待機する必要があります。

アプリケーションのコードを変更せずに(これはストアドプロシージャの変更だけです)これを行う方法はありますか?

ありがとう、 クリシー

回答:

回答№1は2

アプリケーションコードを変更することなくストアドプロシージャ内でこれを絶対に行うことができますが、ロックの問題とタイムアウトの可能性を導入することに注意してください。

つかいます GET_LOCK() そして RELEASE_LOCK() 同期の世話をする。走る GET_LOCK ストアドプロシージャの開始時に同期を実行する RELEASE_LOCK 一度やってしまえば:

IF (GET_LOCK("lock_name_for_this_SP", 60)) THEN
.... body of SP
RELEASE_LOCK("lock_name_for_this_SP");
ELSE
.... lock timed out
END IF

また、アプリケーションタイムアウトがロックタイムアウトよりも長いことに注意して、他の問題が発生しないようにする必要があります。