2012-01-05 4 views
1

キュー/スレッドが実行を停止するまでユーザーがメソッドを実行しないようにする方法があるのだろうかと思っていました。Rails - モデルメソッドの多重実行を防止する

+0

違いがあるので、MRI Ruby(?1.8または1.9)またはJRubyなどの場合は、言及する価値があります。 GILはMRI Ruby 1.8の並列実行を妨げます。同じプロセス内で同じモデルメソッドを同時に実行することは実際には不可能です。 – Nick

+0

これはRuby 1.8.7上にあります。ジョブが実行されているときに、別のセッションを持つ他のユーザーに同じジョブを再度実行させたくありません。手伝ってください。 – oprogfrogo

+0

@yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyou/tslm/ssl_basic_delete_source = ""#ryan-biggは、基本的にはセマフォーロックを作成することで正しいアイデアを持っていますが、 – Nick

答えて

3

runningブール値属性など、別の属性の有無を確認するメソッドを定義することができます。この属性がtrueの場合、このメソッドは使用できません。

+0

Ryan、実行中のブール値を使用するこの考え方を詳しく説明してください。ブール値としてグローバル定数を設定し、ジョブが完了するとすぐにfalseに切り替えることを指していますか? – oprogfrogo

+0

ジョブが完了するとfalseにトグルします。 –

関連する問題