我正在使用Django框架编写一个Web应用程序,我对如何在特定时间段后自动修改数据有一些更高级别的问题。
我想要做两个不同的更新:
我想每周一上午12:01对我的数据库执行一些操作。我一直以为我会做一个cron工作来做这件事。
我有一个模型“Transaction”,它有一个时间创建字段。创建事务48小时后,我想在事务中切换一些布尔字段,并对其他相关对象进行一些更改。
我最好的选择是#2每分钟运行一个cron作业,检查是否有超过48小时的交易?是否有一种更容易的方法可以做到我错过了?
答案 0 :(得分:1)
您可以使用名为Celery的包完成这两件事。
Celery是基于分布式消息传递的异步任务队列/作业队列。
以下是Django用户的介绍: http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html
问题1 - 您可以使用crontab调度程序类型在Celery中执行Periodic Task: http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#crontab-schedules
对于问题2 - 我将参考以下Stack Overflow问题来执行模型中的延迟任务: Django - Executing a task through celery from a model