PowerJob icon indicating copy to clipboard operation
PowerJob copied to clipboard

[Feature] 任务队列功能

Open KFCFans opened this issue 5 years ago • 4 comments

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方案,不过新增状态码需要小心状态机的维护。

KFCFans avatar Jul 13 '20 14:07 KFCFans

这个功能启动开发了吗?我这个周末可以参与到这个功能的开发中来

ocean23 avatar Jan 06 '21 01:01 ocean23

这个功能启动开发了吗?我这个周末可以参与到这个功能的开发中来

没有。 这个功能比较复杂,引入队列后需要额外考虑很多东西,因此方案需要好好设计,目前暂时搁置这个 feature。

KFCFans avatar Jan 07 '21 04:01 KFCFans

还有个场景,限制同时只能执行1个实例时,运行第二个实例时自动将这个实例放入队列,等第一个实例执行完毕再启动第二个。

rxxy avatar Aug 05 '21 02:08 rxxy

+1,既然已经做了队列,是否可以考虑把这种任务互斥功能加进去,甚至可以增加可手动配置不同任务互斥的

children827 avatar Dec 19 '22 08:12 children827

我感觉,任务触发类型加个MQ订阅方式,就OK了,其他还是原来的方式就行了

dargoner avatar Mar 06 '23 06:03 dargoner