beanstalkdを使用したPHP非同期処理。お勧めですか?
-
06-07-2019 - |
質問
beanstalkd [ http://kr.github.com/beanstalkd/ の使用を推奨しますか
PHPでの非同期処理?
このライブラリを使用した人からのフィードバック/コメント賛否両論が必要です。
ありがとう、
解決
私は実稼働環境でBeanstalkを使用し、テスト中に何百万もの単純なメッセージを投げかけました。一般的には大量ですが、退社するまで実稼働システムには100,000を超えるタスクがありました。まだ実行されている可能性があり、その場合は数千万になります-私が計画したように、さらに拡張されていればさらに使用されます。
いくつかの優れた点があるのでお勧めします。
- 名前付きチューブを使用して、配信されるジョブを制限できます。マシンのホスト名に基づいてチューブを監視します。これは、ワーカーが実行される場所を制限します-特定のサーバーにのみ保存されるアップロードされたファイルに役立ちます。
- 遅延を使用して将来のイベントを設定できます
- サーバーの最新バージョンもbin-loggingをサポートし、永続性を提供しますが、クラッシュすることはありません。
最初に行ったタスクは画像処理でした。Apache/ mod_phpプロセスの外部でその作業を行うことで、サーバーに影響を与えることなく(Webサーバーを停止して)大きな画像のサイズを変更できました。軽くロードされたキューでは、アップロード後にページが更新される前にサムネイルが作成されていました。
他にも非同期処理が可能な多くの潜在的なタスクがあります。
私が今まで経験した唯一の問題は、労働者が問題なく完了したこと、またはジョブを「埋める」ためにエラーをキャッチして、ジョブがキューに戻されないようにすることでした再度実行します(ワーカーを再度クラッシュさせます)。
ワーカーを再起動してメモリをクリアすることも、PHPが長時間実行されるプロセスにあまり適していないため便利です。
所属していません StackOverflow