0

そのphpエージェントファイルのジョブを定義したエージェントがありますが、2番目のエージェントが1分後に実行され、前のエージェントの作業がまだ終了していない場合、問題が発生します.....すべてのエージェントで選択された行にフラグを立てます。別のエージェントが干渉していない新しいクエリを実行します

このクエリを変更する方法は、選択されているかどうかに関係なく、そのテーブルにフィールドを作成し、そのフィールドを更新するのが最善の方法です。

db::query("SELECT 1000 FROM web-service WHERE `state`= 1 AND `fetch_id`="fetchid"  ")//

1-状態=1は私の製品の条件です

2-フェッチIDを使用して各エージェントにIDを代入する最善の方法は何ですか?

4

1 に答える 1

0

あなたの質問を理解できれば、複数のスクリプトが同じ行で同時に動作することは望ましくありません。これは として知られてcontentionおり、さまざまな方法で解決できます。

過去にこの問題を解決した 1 つの方法は、スクリプトがまだ実行されていない場合にのみスクリプトを実行することです。ここで定義されているように、シェル スクリプトを使用してこれを行うことができます:シェル スクリプト: 既に実行されている場合はスクリプトが実行されないようにする

于 2012-08-03T15:40:17.467 に答える