1 unstable release

0.1.0 Mar 6, 2022

#139 in #pi

MIT/Apache

24KB
437 lines

pi_weight_pool

任务池

可以向任务池中放入不同权重的任务,任务池提供弹出功能,任务池大概率会弹出权重高的任务。

任务池支持的任务可以大致分为三类:

串行任务:插入串行任务需要先创建队列,放入到同一个队列的任务,会按顺序弹出。

创建队列会返回队列key,可以通过该key获取队列引用。

可以获得队列状态-是否被锁定,可以从队列头或尾放入任务,也可弹出任务。

可设置队列权重。调整队列权重立刻在下一次弹出队列时生效。

队列可以设置为弹出任务后自动锁定,直到外部将队列解开锁定,锁定的队列不会在弹出任务。

并行任务:在任务池中,如果不是队列任务,那一定是一个并行任务。

并行任务与串行任务的区别是,并行任务不需要排队,并行任务的权重越高,弹出的概率越大。

定时任务,该任务先被存在定时器中,超时后,才能有机会被弹出。

定时任务分为可撤销和不可撤销两类,可撤销的定时任务放入时会返回唯一key,通过该key可撤销该任务。

Dependencies

~715KB
~11K SLoC