2017-09-01 44 views
0

m working on a project and can t解決,可能是一個簡單的問題。運行任務模型datetime在Django

我在模型中有一些日期時間,我需要在當前時間到達模型日期時間時運行一些代碼,所以要說它是一個模型中提供的sheduler,還需要添加一些像每個日,年,...

我不知道是否有一個簡單的不錯的解決方案。

感謝向前....

+0

嘗試[芹菜](http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html) –

+1

我聽說過它,你可以提供一個簡短的例子 –

+1

@ E.Tretyakov如果你閱讀芹菜的文檔,你可以找到如何設置芹菜。有一個簡單的例子可以提供如何定期運行任務。 –

回答

0

我想你可以有兩種解決方案。

最簡單的方法是創建管理命令來執行您需要執行的操作,並使用django.utils.timezone.now作爲起始值來過濾模型中的日期時間。如你所願像

  • run_hourly
  • run_daily
  • run_weekly

然後你就可以在Linux上安裝cron來當你需要它運行管理命令,您可以創建許多命令。

另一種解決方案是使用任務隊列工具,如CeleryRQ。 芹菜需要配置,您還必須設置您的服務器運行CeleryCelery beat schedule在特定時間運行任務。如果你沒有任何具體的要求和需求只是運行了幾個任務,我會用cron,而不是任何任務隊列

更多任務隊列軟件在這裏:https://www.fullstackpython.com/task-queues.html

0

I`ve發現非常有用article。一切工作正常,但PyCharm檢測到故障導入這些

from celery.task.schedules import crontab 
from celery.decorators import periodic_task 

但它仍然沒有提供服務器運行過程中的錯誤。

+0

由celery.schedules替換爲celery.task import crontab import periodic_task –