pi_weight_task

Crates.iopi_weight_task
lib.rspi_weight_task
version0.2.0
sourcesrc
created_at2022-03-06 09:13:17.737251
updated_at2024-07-23 03:27:23.98192
description任务池
homepage
repositoryhttps://github.com/GaiaWorld/pi_weight_task
max_upload_size
id544441
size23,494
dev (github:gaiaworld:dev)

documentation

README

pi_weight_task

任务池

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

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

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

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

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

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

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

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

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

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

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

Commit count: 3

cargo fmt