问题描述
我正在使用Django框架构建Web应用程序。用户互动很少,只有一些静态链接,导航栏和一些来自我的应用程序本身的图表。该应用程序的主要部分来自python脚本,该脚本从外部源读取数据,对其进行一些数据处理,然后写入我的django数据库。然后,在写入数据库后,将创建一个新页面,其中包含有关数据库条目的信息。请注意,没有用户交互,因此没有启动或停止任务。我希望任务在24/7后台运行。
到目前为止,我已经研究了芹菜和django-background-tasks。对于我的用例而言,Celery似乎有点过多。我认为我不需要经纪人服务,因为我只想运行用户永远不会与之交互的1个任务。另外,我不需要多名工人。 Django-background-tasks似乎是一个不错的轻量级替代方案,但它似乎不支持不确定的任务,而不必每隔一段时间刷新一次任务(理想情况下,我不需要这样做)。有没有更适合此用例的工具?还是我只是完全误解了芹菜和django-background-tasks。
更新 谢谢大家的评论!因此,我查找了@D Malan提到的内容,我认为像Supervisord这样的工具可能适合我的用例。也就是说,我可以在后台与django应用程序分开运行python脚本,然后让python脚本与django应用程序进行交互。我现在唯一的问题是让该流程与django应用进行交互。 @deceze提到了从python脚本调用管理命令。因此,这涉及通过调用自定义django管理命令的python脚本创建一个子进程来更新我的数据库?或者我可以使用django.core.management.call_command,但可以使用与django应用程序分开的python文件。如果是这种情况,它将如何知道从何处获取命令?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)