2016-06-15 1 views
0

ためジャンゴする私はDjangoのモデルの人を持っている:どのようにセロリにperiodictaskを作成して、特定のモデルインスタンス

class Person(models.Model): 
    first_name = models.CharField(max_length=100, blank=False, null=False) 
    last_name = models.CharField(max_length=100, blank=False, null=False) 
    cellphone = models.CharField(max_length=20) 
    phone = models.CharField(max_length=15) 
    email = models.EmailField() 

とForeignKeyのフィールドthrought人

に登録された活動を追跡活動というモデル、

私はデータベース

から彼女を削除することができますので人が45日にすべての活動を行っていない場合、私は、私はセロリPeriodicTasksが解決策になることができると思ったが、このタスクは毎日実行する必要があります検証する必要があるとdatab内のすべての人に問い合わせる検証を行うためにase。

インスタンスがデータベースに初めて保存されてから45日後に実行されるすべてのPersonインスタンスに対して、特定のスケジュールされたタスクを作成する方法はありますか?

答えて

0

あなたは次のことを試すことができます。

1)自動的にユーザーの最後の活動日のタイムスタンプを更新して、モデルにフィールド「last_activity」を追加します。

2)最初のインスタンスから45日後に実行されるタスクを作成します。 last_activity_dayのタイムスタンプが古いかどうかをすべてのユーザーがチェックします。そうであれば、ユーザーを削除します。

ただし、最初の45日間は処理を保存することができます。その後、last_activityが2日目、3日目などのユーザーを検出するために、毎日、つまり46日目、47日目、48日目などのタスクを実行する必要があります。

あなた自身が言いましたように、毎日のタスクを実行する方が良いです。

関連する問題