質問

beanstalkd [ http://kr.github.com/beanstalkd/ の使用を推奨しますか

PHPでの非同期処理?

このライブラリを使用した人からのフィードバック/コメント賛否両論が必要です。

ありがとう、

役に立ちましたか?

解決

私は実稼働環境でBeanstalkを使用し、テスト中に何百万もの単純なメッセージを投げかけました。一般的には大量ですが、退社するまで実稼働システムには100,000を超えるタスクがありました。まだ実行されている可能性があり、その場合は数千万になります-私が計画したように、さらに拡張されていればさらに使用されます。

いくつかの優れた点があるのでお勧めします。

  • 名前付きチューブを使用して、配信されるジョブを制限できます。マシンのホスト名に基づいてチューブを監視します。これは、ワーカーが実行される場所を制限します-特定のサーバーにのみ保存されるアップロードされたファイルに役立ちます。
  • 遅延を使用して将来のイベントを設定できます
  • サーバーの最新バージョンもbin-loggingをサポートし、永続性を提供しますが、クラッシュすることはありません。

最初に行ったタスクは画像処理でした。Apache/ mod_phpプロセスの外部でその作業を行うことで、サーバーに影響を与えることなく(Webサーバーを停止して)大きな画像のサイズを変更できました。軽くロードされたキューでは、アップロード後にページが更新される前にサムネイルが作成されていました。

他にも非同期処理が可能な多くの潜在的なタスクがあります。

私が今まで経験した唯一の問題は、労働者が問題なく完了したこと、またはジョブを「埋める」ためにエラーをキャッチして、ジョブがキューに戻されないようにすることでした再度実行します(ワーカーを再度クラッシュさせます)。

ワーカーを再起動してメモリをクリアすることも、PHPが長時間実行されるプロセスにあまり適していないため便利です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top