1 Jooooooooo 2022-06-25 00:15:36 +08:00 要不研究下 cpu 的调度算法, 和你想解决的问题其实是一回事. |
![]() | 2 CEBBCAT 2022-06-25 01:04:15 +08:00 我来抬杠了:如何定义均匀?如果只是网络 IO ,那就多开并行数同时请求呗 |
5 controller 2022-06-25 08:15:40 +08:00 via Android ![]() 消息队列,空闲客户端会自动获取任务执行 |
![]() | 6 546L5LiK6ZOt 2022-06-25 08:49:38 +08:00 @jackiejkl 有 nio ,一个线程就可以发起多个网络 io 请求 |
7 clayyj1210 2022-06-25 08:53:29 +08:00 每个微服的线程池设定小一点咯。 |
![]() | 8 jackiejkl OP |
![]() | 9 jackiejkl OP @clayyj1210 不对啊,难点在于分配,线程池这里都已经获取到了,要是在线程池里去获取的话就保证不了准时了 |
11 c0t 2022-06-26 12:21:25 +08:00 via Android 我之前用的方案也是消息队列,命令是幂等的就更好了 |
13 jones2000 2022-06-26 13:36:39 +08:00 数据库前面加一个前置的任务调用服务,所有数据库操作都通过这个前置来控制。 |
![]() | 14 EscYezi 2022-06-26 13:53:24 +08:00 via iPhone 给每个微服务指定同时运行命令的上限,主线程检测到当前运行命令数小于上限时去数据库取一条命令提交到线程池运行 理论上可以做到比较均匀 |
![]() | 15 Geraltt 2022-06-26 15:17:50 +08:00 有必要造轮子吗? XXL 、Elastic job 啥的不能满足吗 |
![]() | 16 sun1993 2022-06-26 19:28:48 +08:00 给这 1000 条指令取出来,然后用最基本的轮询算法挨个儿发给这些机器不就得了(可能会错意了,乱说的 233 ) |