[Feature] 任务队列功能
Is your feature request related to a problem? Please describe.
需求反馈自群友 @{NK} server由于没有可用计算资源(worker全部宕机或满载)时,并不直接使任务失败,而是加入队列中延迟调度。
Describe the solution you'd like
任务(Job)添加一个配置参数,失败队列大小,<=0代表直接失败不如队,否则为该任务的队列大小。当server调度时,由于没有可用计算资源而失败的任务会被插入队列中。单独起一个线程轮询重选调度队列。
细节:考虑用真内存队列呢还是加一个状态使用DB来充当队列,毕竟这个队列数量不可能太大,用DB顺带把高可用做了。偏向于DB方案,不过新增状态码需要小心状态机的维护。
这个功能启动开发了吗?我这个周末可以参与到这个功能的开发中来
这个功能启动开发了吗?我这个周末可以参与到这个功能的开发中来
没有。 这个功能比较复杂,引入队列后需要额外考虑很多东西,因此方案需要好好设计,目前暂时搁置这个 feature。
还有个场景,限制同时只能执行1个实例时,运行第二个实例时自动将这个实例放入队列,等第一个实例执行完毕再启动第二个。
+1,既然已经做了队列,是否可以考虑把这种任务互斥功能加进去,甚至可以增加可手动配置不同任务互斥的
我感觉,任务触发类型加个MQ订阅方式,就OK了,其他还是原来的方式就行了