1

私は(LAMPスタックを使用して)多くのユーザー作成のスケジューリングタスクを処理する必要があるWebサイトを開発しています。これは次のように機能します。ユーザーがイベントを作成して日付を設定すると、他のユーザー(最大63人)が参加できます。設定日の数時間前に、システムはそのイベントにサブスクライブしている各ユーザーに電子メールを送信する必要があります。以上です。

しかし、私はスケジューリングを扱ったことがなく、私が知っている(不十分な)ツールはcronとatだけです。私の計画は、イベントごとにatジョブを作成することです。このスクリプトは、すべてのサブスクライバーに電子メールを送信してメールで送信するスクリプトを呼び出します。

私の質問は:私の計画/デザインは良いですか?スケーラブルですか?私が知っておくべきより良いオプションはありますか?

4

2 に答える 2

2

イベントごとに個別のcronジョブを使用するのはなぜですか?cronジョブを1時間に1回実行するだけのニュースレターに対しても同様のことを行いました。送信するニュースレターがある場合は、それらを処理するだけです。あなたの場合、1時間に1回実行され、それ以降に必要な時間間隔で発生するイベントのユーザーのリストを取得するスクリプトがあります。

それが動作します。スケーラビリティに関しては、少なくとも、スクリプトがサーバーを不必要に停止させないように、スクリプトが独自のプロセスで実行されるようにしてください。

おそらくphp-cliスクリプトを作成しますか?

私は最近Railsでほとんどの作業を行っていますが、バックグラウンド処理ライブラリが豊富にあります。そのうちの1つはResqueで、redisサーバーを使用してPHPクローンを見つけたジョブを追跡しますhttps://github.com/chrisboulton / php-resque

あなたのユースケースにはやり過ぎかもしれませんが、おそらくそれを試してみてください

于 2012-11-30T03:12:21.060 に答える
1

(単純なWebサーバーではなく)アプリケーションサーバーを使用する適切なフレームワークを検討する場合、Springには使いやすいタスクスケジューリングレイヤーがあります。サーバー上でジョブをスケジュールするには、単純なLAMPインストールで実行できる以上のことが実際に必要ですが、私はしばらくPHPを使用していないので、同等のものがあるかもしれません。

これがあなたのオプションのいくつかを比較する記事です。

于 2012-11-30T03:18:49.843 に答える