2016-09-27 4 views
0

私はPheanstalkバンドルとDoctrineでSymfony framework3を使用しています。私は、データをbeanstalkに送信するイベントを作成します。別のサーバー上の他のSFアプリケーションはジョブを実行し、完了するために最初のSFアプリケーションで通知ステータスを更新します。どのようにステータスが更新されたときに、私は確認することができ、そのようなセットの警告より:ジョブが完了したときに通知を返します。

http://byrobin.nl/store/wp-content/uploads/sites/4/2016/03/local.png

私は、更新前に多分リスナーを詞ループやステータス更新のチェックを持ってコマンドを作成することができますか?また、私はbeanstalkジョブをチェックして実行するコマンドを実行するのと同じ問題を抱えています。 devモードで私は手でそれを実行するが、while(真)のような無限ループを試みるが、それは私のバッファをロードし、クラッシュします。私は1〜2分ごとに動作するcronの仕事を考えていましたか?この2つの問題に最適な解決策は何ですか?何かアドバイス?

答えて

0

1)while(true)ループを伴わないWebSocketでは良いでしょう。 websocketは、処理のためにタスクが提出された後、フロントエンドによって開くことができます。ジョブが処理を終了した後、フロントエンド用のソケットに情報を中継するためにwebsocketのサーバ側に通知します。

2)もう1つの方法は、メッセージを提出することです。名前を匿名のチューブ(時間と接頭辞に基づいて一意の名前を付けてください)に入力します。 Beanstalkdを匿名のチャンネルに登録したジョブを提出する前に、ジョブをサブミットしてください。ジョブが終了すると、答えがチューブにポストされます。すでに加入者がいるので、それは仕事を予約してそれを処理し、それを削除し、チューブも取り除かれます。

関連する問題