如何在一定时间后自动修改数据库记录?

时间:2013-09-06 02:10:28

标签: python django cron

我正在使用Django框架编写一个Web应用程序,我对如何在特定时间段后自动修改数据有一些更高级别的问题。

我想要做两个不同的更新:

  1. 我想每周一上午12:01对我的数据库执行一些操作。我一直以为我会做一个cron工作来做这件事。

  2. 我有一个模型“Transaction”,它有一个时间创建字段。创建事务48小时后,我想在事务中切换一些布尔字段,并对其他相关对象进行一些更改。

  3. 我最好的选择是#2每分钟运行一个cron作业,检查是否有超过48小时的交易?是否有一种更容易的方法可以做到我错过了?

1 个答案:

答案 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

相关问题