簡體   English   中英

如何在celery和django中為特定模型實例創建周期任務

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM