没有芹菜的Django的后台处理

jef*_*upp 14 python django ajax asynchronous django-celery

我有一个Django站点的一小部分,它保持两个用户之间的主持聊天会话的状态.基本上,第一个用户讲3分钟(没有其他人可以),然后第二个用户说话,然后是30秒暂停,并且该过程再重复一次.我目前正在使用数据库和"RoomState"模型来管理房间的当前状态(谁可以说话等).状态转换受到客户端每隔10秒向我的一个视图发送"ping"AJAX POST消息的影响,该消息检查是否需要更改状态.

这有效,但肯定会感到hacky.我想知道是否有比django-celery + rabbitmq更轻量级的东西来管理计时器上的短期背景任务.我意识到web/Django的本质是无状态的,但我只是想看看是否有人有一个简单的建议来以更可靠的方式管理状态转换.

col*_*fer 16

django-utils的作者,我建议尝试我的新项目Huey - 具有更丰富的功能集,更好的文档,更稳定,并适用于任何python框架(包括django). 文件.


Eti*_*nne 7

我知道只有一种更轻量级的Celery替代品:django-utils中的队列.

另一种方法是直接使用子进程模块,但您可能必须解决已在Celerydjango-utils中解决的一些问题.

  • 您可能想使用https://github.com/coleifer/huey而不是我不再维护django-utils (3认同)

cha*_*dgh 5

我推荐django-background-tasks.我已经在几个项目中使用它,它作为一个简单的任务运行器确实很好.它也被推荐在Django的Two-Scoops中.