2016-11-20 9 views
1

特定の日付に特定の日付に実行された電子メールを1回の実行として処理したいと考えています。 node-schedulerは仕事のためのもののように見えますが、これをHerokuサーバー上で1日1回再起動することで問題が発生するかどうか、そしてnode-schedulerが何かを混乱させるかどうかは疑問でしたthang?あなたが考慮しなければならないことがありノードスケジュールon Heroku(Herokuのスケジューラアドオンではありません)

答えて

2

2つだけ問題:

  1. サーバは、実行されるようにスケジュールだなタイミングで適切に再起動した場合はどうなりますか?これは起こりそうもありませんが、それでも可能です。これが重大な問題であれば、私はおそらくtime_of_last_runという値をデータベースのジョブに設定します。次に、開始時に、最後の実行時間が最後の予想時間より前の場合は、おそらくそれを実行していませんでした。

  2. 「次の」サーバーが復旧したら、ジョブのスケジュールを変更する必要があります。つまり、これらのジョブを何らかのデータベースに格納する必要があります。

それ以外は問題ありません。

+0

ありがとうございました!私は最初のことを考えていましたが、これはサイトの始まりにすぎません。しかし、ナンバー2でも、もし私がデータベースに保管しているのであれば(これは私がすでにレコードを保存するためにしています)、どうすればこのことができますか?私はちょうどすべての日付を格納し、その後、サーバーがそれぞれを通ってループを再開し、ジョブを通してそれらをフィルタリングするでしょうか?私の計画は、単に仕事をスケジュールして/ router.get( 'myWhatever''これは最善の方法ではないでしょうか? – KellysOnTop23

+0

)サーバーの起動時に、データベースからすべてのスケジュールされたジョブを取得します。新しいスケジュールされたジョブを作成するために 'router.get( '...'')を使用している場合は、ジョブを保存するだけで、 'node-scheduler'に日付を渡します。その日付の前にサーバが再起動した場合、データベースからジョブを引き出し、時刻が来たら実行します。 – Randy

+0

ヒーローがサーバを再起動するのを処理する?何も見つかりません – KellysOnTop23

関連する問題