Django预定了工作

时间:2009-10-07 21:22:19

标签: django scheduled-tasks

我正在为一个由Django提供支持的网站编写一些拍卖功能,并且每次有人出价时都可以选择让拍卖延长几秒钟(这样就不会有最后一刻的狙击)。拍卖结束后,需要做一些事情,比如通知获胜者他们的胜利,并通知卖家他们需要向谁发送物品。

在Django中,如果拍卖结束时,我是如何运行拍卖完成脚本的,尤其是当拍卖结束时间可能是移动目标时?

感谢。

3 个答案:

答案 0 :(得分:2)

听起来你可能想让任何负责关闭拍卖的代码发出一个自定义信号来表明它正在发生。

答案 1 :(得分:2)

听起来好像可以在bid()视图

上轻松扩展auction_end DateTime字段

就发送电子邮件的结果而言,您应该编写一个管理脚本http://docs.djangoproject.com/en/dev/howto/custom-management-commands/,检查已结束且尚未发送通知的拍卖,并安排此脚本定期在cron中运行(必要时按分钟计算)。一个例子是pinax的django-notification emit_notices脚本。

http://github.com/jtauber/django-notification/blob/master/notification/management/commands/emit_notices.py

更好的是,你可以自己掌握django-notification。

答案 2 :(得分:2)

Django command extensions提供了工作系统(job scheduling)。将它添加到crontab后,它能够每小时/每天/每周/每月运行作业。

我认为扩展作业管理命令以完成任务应该很容易。