1

物事がどのように組み合わされるのかわかりません..

勝者などを発表し、キャンペーンのリマインダーを送信するアクティブなキャンペーンを含むアプリがあります。キャンペーンはdjangoで作成され、キャンペーンモデルには、X日、週、または時間ごとに勝者に通知するというフィールドがあります。したがって、このキャンペーンでは、勝者を毎週金曜日に発表する必要があります。これはキャンペーンごとです。勝者とリマインダーの設定が異なる複数のキャンペーンが存在する可能性があります。

celerybeat タスクを開始する場所がわかりません。モデルを保存する必要がありますか?しかし、何かを変更してモデルを再度保存するとどうなるでしょうか? 別のタスクを作成して、2 つ以上のリマインダーなどを送信することはありませんか?

4

1 に答える 1

2

Celerybeat はデーモンであり、バックグラウンドで永続的に実行する必要があります (supervisord などを使用)。リマインダーの最短遅延が 1 時間であることを考えると、1 時間ごとにタスクを実行する必要があります。

このタスクは、すべてのキャンペーンをチェックし、データベースからのデータに従って、送信するリマインダーを決定する必要があります。物事を簡単にするために、次回リマインダーを送信するときに計算して保存することをお勧めします。このようにして、次回、送信するリマインダーを一覧表示することは、期限切れのすべてのリマインダーを一覧表示するのと同じくらい簡単になります。

于 2012-05-24T13:39:49.753 に答える