这是我的情况:
当用户登录到我的网站时,我为该用户排队一堆任务(通常每个任务需要100毫秒,每个用户有100个任务)。这些任务被排队到默认的 Celery 队列中,我有数百个工作进程在运行。我使用 Websockets 显示用户实时进度,以便在后端完成任务时进行更新。如果只有 1 或 2 个用户活跃,则一切都很好。
现在,如果几个并发用户登录到我的网站,后面的用户将排在最初的用户之后排队,他们的任务会饿死(因为所有任务都进入同一个队列)。我的想法是为每个用户创建一个动态队列,以确保公平性。然而根据 Celery 文档 (http://docs.celeryproject.org/en/latest/userguide/routing.html#defining-queues),似乎我需要静态地定义队列。
有没有关于在我的情况下使用 celery 的最佳实践建议?