大家好,现在有个需求,我一个 fuzz 项目里有多个 module,每个 module 里会带上多个不同的脚本( fuzz 脚本)。
原来是采用的是主入口通过 celery 调用多个 module,每个 module 采用线程池进行脚本调用,最后将线程池聚合的结果存入数据库(如 mysql )。
但是后来遇到了瓶颈,某些脚本容易卡住比较长时间,拉高线程数速度也上不去。
所以我在想,有没有可能主控入口通过 celery 节点调用多个 module,然后每个 module 用 celery 节点调用多个脚本,这样能提高可扩展性,我只要增加节点,无论是加机器还是提高单个机器的配置,理论上就能加快整体速度。
本来线程池聚合数据还是蛮容易的,如果用多个 celery 节点调用多个脚本,我想到的只能用 redis push,最后再想法子把每一坨结果做数据聚合。
但是这又带来了新的问题,每一坨数据不知道啥时候完,如果某个 module 脚本比较多,我总不能监控每个脚本任务都监控吧,最后需要的是每个 module 跑完了的聚合结果,才能入库(如 mysql )。
求大佬们指教,有没有啥办法,如果能解决 v 币感谢~
在线等,很急!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.