我有进程列表,我想像每分钟十个进程一样执行它们。
我试过了ExecutorService,但没有一个能支持我的情况,我也试过了,ThreadPoolExecutor但也许我无法弄清楚如何正确实现它。RateLimiterRxJava
我有Runnable大小为100K的列表,每个Runnable都有这个逻辑:
从 检索数据rest api。
对数据进行一些计算。
将结果保存在数据库中。
所以我使用ExecutorService大小10并在内部设置延迟(5 秒)Runnable#run()来管理我需要的“每分钟十个进程”,但仍然无法管理。
这个逻辑的要点是减少对rest api.
实际上,我们正在寻找的是有一个上限(在时间和操作数方面),而不是在各个操作之间平均分配时间,而不管它们各自的吞吐量如何。
即,如果我有一个包含 100 个操作的列表,每个操作需要 0.5 秒,并且我有一个速率限制器,而不是(分发后)确定单个操作应该花费 0.8 秒,那么我可以使用 0.3 秒的间隙来启动一个新的操作
侃侃无极
翻翻过去那场雪
猛跑小猪
慕工程0101907
随时随地看视频慕课网APP
相关分类