2016-04-27 14 views
1

イベントが発生し、その後私のサーバーにフィードバックがあります。イベントの1時間後にメッセージを送信する必要があります。Node.js:long delay

私はsetTimeout()を使用できますが、それはうまくいかないようです。

私は(例えば毎分のような)データベースからのイベントのステータスをチェックしますcronを開始した場合、おそらくそれは良いだろう

誰もが、このような長い遅延を実現するためのより大きな善のオプションを知っていますか?

+0

個人的には、私はこの目的のために 'cron'を使います。 x分ごとに目盛りをつけて、あなたのDBのアクションのタイムスタンプを保持してください。 – Flux

+0

setTimeout()に問題はありません。なぜそれがうまくいかないのか説明してください。 – teroi

+0

@teroiサーバーが再起動した場合、コマンドは実行されません。 – Lola

答えて

2

100%信頼性が必要な場合は、cronジョブを使用してください。 cronジョブの問題は、コードが場所の周りに広がり、新しいサーバーを設定するたびに設定が必要になることです。別のアプローチは、cronのようなnpmパッケージを使用することです。

setTimeout()の問題は、アプリケーションがクラッシュしたり再開したりすると、将来の関数呼び出しが失われるということです。ただし、アプリケーションが起動するたびに、DBにクエリを行い、欠落しているタイムアウトをすべて確認し、適切に設定することができます。

+0

あなたの答えをありがとう、私はcronに傾いている、あなたは私の疑問を払拭した – Lola