イベントがカレンダーに表示されるMeteor.jsアプリケーションを構築しています。Cron-job - 日付の前に[x]日/時間を送信 - ユーザーは[x]を選択できます
一部の機能は、アプリケーションが電子メールでイベントを事前にユーザに自動的に通知することです。これは固定リマインダ期間(例えば3日程度)で簡単には簡単ですが、ユーザが通知間隔を選択できるシステムを構築する必要があります。 3日、7日、3時間、24時間などとなります。
イベント収集を検索し、event date - 3 days > current date
が通知をpingしているかどうかをチェックするcronジョブを設定できますが、各ユーザーにカスタム間隔がある場合、このcronジョブを作成する方法がわかりません。
私は現在、それを処理する方法は、イベントが2つの値で保存されることです:date
とreminderDate
。イベントがデータベースに保存されると、ユーザーが選択した間隔に基づいてreminderDate
が計算されます。次に、リマインダーの設定を24時間から1週間に更新すると、すべてのイベントのreminderDate
が更新される操作が実行されます。
上記の問題の解決策は、DBに数百から数千のイベントがあると、完了までにかなりの時間がかかる非常に長い操作になる可能性があるということです。より良い方法が必要でしょうか?
これをどのように処理するかアドバイスをいただければ幸いです。
マイケルねえ、応答のための おかげで - それは超高く評価です!間隔やイベント、ユーザーはあまりないので、ユーザーが間隔を頻繁に変更するとは思わない。私は最初のオプションのために行くことができる。 最後に数時間で、誰かが間隔設定を更新するときに作成される各ユーザーのために別々のcronジョブを持つという概念を提案しました。それは、通知を送る必要がある日付である文書の日付を保存する必要はないということです。これが可能かどうか知っていますか良いアイデアですか? – Sean
ユーザーあたりのcronジョブは面白いですが、アプリケーションサーバーの再起動のケースに対処する必要があります。 –
こんにちはMichel、サーバーの再起動時にcronジョブが消去されることを意味しますか? – Sean