0

一部のユーザーに電子メールを送信するためのレーキスクリプトを作成しました。rakeスクリプトの実行中にデータベースをロックする

rakeスクリプトでは、古いデータベースレコードを削除してから電子メールを処理する必要があります。

スクリプトが実行されている間に、一部のユーザーがデータを表示/削除することがあります。スクリプトによってデータが削除された場合は、新しいデータに対応するためにビューを更新する必要があります。

私が考えることができる最初の明白な解決策は、ビューに古いデータを表示しないで、レコードが既に削除された後に削除される可能性を避けることです。

私はここでも競合状態の可能性があると思いますが、スクリプトの実行中にデータベースをロックする方法を知りたいと思います。

私はデータベースシステムとしてMysqlを使用しています。

答えて

2

私はモデルのメソッドを呼び出してデータベースレコードを削除するレーキタスクを設定することでこれにアプローチします。私はtransactionの古いメールを削除するコードをラップします。これにより、電子メールの削除中にデータベースがロックされ、誰かがデータを削除しようとしたときにスローされた例外を処理できるようになります。

+0

ありがとう、私はあなたの助言に従って、トランザクションを使用しました。 – user852689

関連する問題