[英]how to create periodictask in celery and django for an specific model instance
我有一個Django模型人:
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字段中跟蹤注冊到個人的活動
我需要驗證某個人是否在45天內沒有進行任何活動,以便可以從數據庫中刪除她
我以為Celery PeriodicTasks可能是一個解決方案,但是該任務必須每天運行並查詢數據庫中的每個人以進行驗證。
有沒有一種方法可以在實例第一次保存在數據庫中后的45天內為每個Person實例創建特定的計划任務?
您可以嘗試以下方法:
1)在模型中添加一個字段“ last_activity”,該字段會自動更新用戶上次活動日的時間戳。
2)現在創建一個任務,該任務將在第一個實例的45天后運行。 它將檢查所有用戶的last_activity_day時間戳是否早於45天。 如果是,那么它將刪除用戶。
但是只有您可以保存處理的前45天。 之后,您需要每天(即在第46天,第47天,第48天等)運行任務,以檢測last_activity在第2天,第3天等等的那些用戶。
因此,最好像您自己提到的那樣執行日常任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.