私は現在、非常にリソース集約型のCRONを15分ごとに実行している既存のカスタムeコマースPHPアプリケーションを開発中です。スケジュールされたタスクPHPの代替
要点:興味のある製品に対して複雑なフィルタを設定し、これらのフィルタに基づいて電子メールを受信できます。 15分ごとに実行されるCRONは、最後に実行されて以来リストされているすべての新製品をチェックし、各顧客フィルタと比較します。製品が顧客のフィルタと一致する場合、Amazon SES経由で電子メールを送信します。
これまでのところ、この方法はうまくいきましたが、アクティブな顧客の数が急速に増えているため、CRONは15分ごとにアプリケーションの顕著なパフォーマンス低下を開始しています。それは動く。
私は、サーバーに複数の製品を一度に追いつく必要がないように、製品がリストされるたびにタスクを実行するなど、サーバーへの負荷を分散させるために他のアイデアを参考にしています。
このようなものに近づくと、通常、ベストプラクティスは何ですか?
私はCronが常に3時間ごとに実行されるように、私はいつも特定の時間にバッチを送信するためのシステムセットアップを持っていた以外は、何か似たようなことをしました。 – xlordt
キュー(例:rabbitmqなど)を使用し、複数のサーバーに負荷を分散します。 – solarc