我有一个 Django 站点的一小部分,它保持两个用户之间的主持聊天会话的状态。基本上,第一个用户说话 3 分钟(其他人都不能),然后第二个用户说话,然后停顿 30 秒,这个过程再重复一次。我目前正在使用数据库和“RoomState”模型来管理房间的当前状态(谁可以说话等)。状态转换受到客户端每 10 秒向我的一个视图发送“ping”AJAX POST 消息的影响,该视图检查是否到了更改状态的时间。
这行得通,但绝对感觉很hacky。我想知道是否有比 django-celery + rabbitmq 更轻量级的东西来管理计时器上的短期后台任务。我意识到 web/Django 的本质是无状态的,但我只是想看看是否有人有一个简单的建议来以更可靠的方式管理状态转换。