我正在开发一个使用永久对象MyService的web应用程序。使用web界面,我可以动态更新其状态并监视其行为。现在我想定期调用它的一个方法。我正考虑使用芹菜周期任务,但遇到一些范围问题。我似乎需要执行三个不同的过程:
python manage.py runserver
python manage.py celery worker
python manage.py celerybeat
问题是,即使我确保MyService是一个可以被多个线程安全使用的singleton,celeri也会创建它自己的对象的新副本。有没有办法可以在django服务器和celeri主进程之间共享这个对象?我试图从django脚本中找到一种启动芹菜的方法,但直到现在都没有成功。谢谢你的帮助。在
如果您需要在多个进程或甚至多台机器之间共享某些信息(例如,您的工人可以在一台单独的机器上运行),那么最好(也可能最容易)共享信息的做法是使用外部服务。在
在最简单的情况下,您可以使用Django的DB,但如果您遇到这种情况,例如,如果您的写负载很重,可以使用Redis或Memcache之类的东西(也可以通过Django的缓存API与之对话)。这将使您能够处理大的写负载,此外,您还可以使用例如Redis作为芹菜队列。在
相关问题 更多 >
编程相关推荐