如何在Python中实现时间事件调度器?
在 python 中,如何实现一个在后台运行的线程(可能是在模块加载时),并在周一至周五上午 10 点到下午 3 点每分钟调用该函数。例如,应在
上午 10:01 调用该函数 上午 10:02 上午 10:03 。 。 2:59 PM
有什么指示吗?
环境:Django
谢谢
In python how to implement a thread which runs in the background (may be when the module loads) and calls the function every minute Monday to Friday 10 AM to 3 PM. For example the function should be called at:
10:01 AM
10:02 AM
10:03 AM
.
.
2:59 PM
Any pointers?
Environment: Django
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
Django 是一个服务器应用程序,仅对外部事件做出反应。
您应该使用像 cron 这样的调度程序来创建调用 django 应用程序的事件,或者调用管理子命令或者在某些特殊页面上执行 HTTP 请求。
Django is a server application, which only reacts to external events.
You should use a scheduler like cron to create events that call your django application, either calling a management subcommand or doing an HTTP request on some special page.
threading.Timer
类很方便做这样的任务。但你必须自己计算间隔。The
threading.Timer
class is convenient to do such tasks. But you have to compute interval yourself.我认为你可以发出一个命令 http://docs.djangoproject.com/en/1.1/howto/custom-management-commands/#howto-custom-management-commands 然后 cron 它。
I think you can make a command http://docs.djangoproject.com/en/1.1/howto/custom-management-commands/#howto-custom-management-commands and then cron it.
请注意 django 如何影响线程(除非您使用的是 App Engine,而您无法执行低级别的操作),但是一旦您的线程运行,您就可以连续检查时间戳:
未测试,因此请先尝试一下。
Note sure how django affects threads (unless you're using App Engine where you can't do low level such), but once your thread is running you can continuously check timestamps:
Not tested, so take it for a spin first.
这是一篇来自 google code 的关于在 cron 中调度任务的文章。
使用 Cron 安排任务
Here is an article about scheduling tasks in cron from google code.
Scheduling Tasks with Cron