【发布时间】:2019-09-27 23:44:42
【问题描述】:
我们有最终用户 API 来执行一些长时间(30 秒到 1 小时)CPU 密集型操作。 用户可以创建任务,多次轮询任务状态,最终得到结果。
在内部,我们有任务队列和一些可以处理这些任务的工人。
当用户 1 创建了很多大任务,然后用户 2 创建了一个小任务时,就会出现问题。 User2 期望快速获得结果,但所有工作人员都在处理来自 User1 的任务。来自 User1 的任务位于队列末尾。
期望以循环方式处理来自两个用户的任务。
是否有一些可用于解决此类问题的生产就绪解决方案?
(更新)发现同样的问题: What are some queuing mechanisms for implementing round-robin queues?
【问题讨论】:
-
我假设可以在将任务分派给工作人员之前确定任务的大小。然后,您要么需要能够暂停和恢复长时间运行的任务,要么需要单独拉动工人来完成小任务。
标签: cloud message-queue distributed-computing messagebroker