我想在Django中创建一个Web应用程序,每天上午9点检查一些市场数据并为用户解释它们。
现在,应该如何以最优雅的方式完成?我应该为它创建一个单独的应用程序,它使用主应用程序的共享数据库?或者可能以某种方式将其嵌入主应用程序中?
答案 0 :(得分:1)
这不是一个非常好的问题,因为它太开放,无法正确回答。
但是,我会尝试给您一些指示,以便您更多地研究该主题。有两种方法可以实现您的需求(实际上还有更多方法,但我认为这两种方法是在django应用程序中实现任务调度的最佳方式):
创建自定义管理(管理)命令:https://docs.djangoproject.com/en/1.8/howto/custom-management-commands/并通过crontab每天调用它(如果使用Windows,则调用计划任务)。
使用异步任务队列(如celery或django-rq)及其任务调度程序(celery beat或rq-scheduler)来安排任务。
对于使用自定义管理命令的简单情况是最好的解决方案 - 使用异步任务队列很复杂,并为项目添加一些更多移动组件(请阅读我的帖子@ http://spapas.github.io/2015/01/27/async-tasks-with-django-rq/以便简单介绍django-rq) - 但是,与异步任务队列集成可以为您提供更多的可能性和自由。