egg多进程任务管理问题

不吃香菇
  • 19

用egg开发的后端服务,有个需求要定时查数据库里的task表取出待处理id调用接口获取数据。由于egg是多进程的,为了避免重复处理,计划是在agent上起个定时任务,每次查100条id,分配到worker,worker处理完再通知给agent,agent再把这批id在库里的状态刷新为已处理。
现在的问题是,agent怎么分配任务比较好?
一种策略是使用sendTo方法指定pid向各个worker派发一个id,worker处理完以后通知到agent,再派发下一个id给该worker,直到这100条处理完。
另一种策略是一次性调用100次sendRandom方法把所有id派发出去。
为了尽快处理任务,并且不影响/阻塞其他业务,感觉第一种策略是比较理想的,不知道实际使用起来会不会有问题?如果用第二种,egg底层的分配机制是怎么样的,能做到均衡吗?或者有其他更好的策略吗?

回复
阅读 165
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏