回答
嗯,我会一展身手。假设你已经安装了apscheduler(或把它放在你的Python路径)的basic documentation for APS列出了下面的代码用于启动作业:
from apscheduler.scheduler import Scheduler
sched = Scheduler()
@sched.interval_schedule(hours=3)
def some_job():
print "Decorated job"
sched.configure(options_from_ini_file)
sched.start()
我怀疑你遇到的问题是如何引发的,在Django的启动。你有多种选择,主要包括“将它放置在某个地方”。例如,将其添加到models.py
文件的底部或urls.py
,并且它将在每次Django重新启动时处理一次,然后继续在后台运行。数据库访问然后可以在函数内正常执行 - 只需按照正常的查询导入模型。
但是,考虑到如果你这样做,你将需要杀死&任何时候你想改变计划重新启动你的服务器。我也不确定这是怎么会与多个线程(你会有> 1定时器?)
你真的可能要考虑去像Celery(通过django-celery)这让你所有这一切,再加上单独的调度守护进程和更好的调度控制。
谢谢,创业公司对我来说是最有趣的一点。我正在查看APScheduler,因为Celery中的CrontabScheduler不支持小于分钟的分辨率,而IntervalScheduler不像APScheduler那样支持start_date。 这意味着它不可能像“每秒星期一”和“星期一20:14:50”那样开箱即可。但我决定坚持使用Celery,并使用自定义调度程序。 我更喜欢有一个单独的进程,它运行在web服务器进程之外。 IMO更容易控制和调试。 – jeverling 2013-04-13 10:20:51
“但是,请考虑一下,如果你这样做,那么只要你想改变时间安排,你就需要杀死并重启你的服务器。”其实这不一定需要杀死服务器。简单地启动APscheduler并不要求它添加工作。 OP可以简单地在某个地方启动调度程序,然后根据需要在其他地方添加和删除作业代码,例如,在某些用户的视图中。如果OP不想处理使用Celery的开销并计划简化事务,这仍然是一个选择。 – skeletalbassman 2016-02-10 00:39:31
- 1. 项目外的Django设置
- 2. 如何在asp.net中设置RadioButtonList项目
- 3. 如何在Eclipse项目中设置HtmlUnit?
- 4. 如何在项目中的Xcode 3.2.5中打开“项目设置”?
- 5. 问题在Django项目中使用apscheduler定义Procfile(Heroku)中的Cron作业
- 6. 如何设置VB项目?
- 7. 如何设置recyclerview项目
- 8. 在intellij中设置spring mvc项目时,如何设置tomcat/jetty?
- 9. 在WAMP中设置项目
- 10. 一个Django项目,多个设置.py
- 11. Select2 + Django:设置首选列表项目
- 12. Django的:错误设置项目
- 13. Django的每页设置项目Tastypie Paginator
- 14. Sphinx Docs不导入Django项目设置
- 15. 导入不同的Django项目设置
- 16. Django项目模板加载器设置
- 17. 如何设置项目中使用TweetSharp
- 18. 如何在单Django项目
- 19. 如何用django项目设置hmail服务器
- 20. 如何设置Django和React项目而无需处理CORS?
- 21. 如何设置sentry目录? django
- 22. 上传在Github上虚拟环境中设置的Django项目
- 23. 如何编辑Eclipse中现有项目的项目设置?
- 24. 如何在ColdFusion项目符号表中设置目标?
- 25. 如何在Visual Studio 2010项目中设置工作目录?
- 26. 如何使用wxWidgets在UI中设置项目工作目录?
- 27. 如何在Qt项目中设置Android目标版本?
- 28. 如何在Flash项目as3中设置Flash Player窗口位置?
- 29. 如何在Laravel项目中设置LDAP的配置
- 30. 如何在Aurelia CLI项目中为RequireJS配置设置waitTimeout?
你想实现什么?你是什么意思*写给Django ORM *? – MattH 2013-04-04 10:27:49
我们可以给你一个和你的问题一样清晰的回应:安装django,安装APScheduler。写下你的看法。使用add_date_job添加作业。并在你的工作中随心所欲 – ornoone 2013-04-09 08:42:34
由于APScheduler支持SQLAlchemy和MongoDb作为作业存储,他希望使用Django ORM。我猜。 – laffuste 2013-04-11 09:12:22