生产者消费者

我这篇不是正统意义的生产者消费者,只是我自己对一般离线任务解决的框架,主要是解决一些非实时的数据需求;

生产者消费者都不是常驻内存,都是每个时间周期来操作,dump可能是一天,其他可能是秒级别:

生产者:

1. dump全库

2. select想要的数据文件,生成pack包

消费者:

按业务流图:

1. merge,合并基准文件、pack包、状态包,生成新的基准文件,执行失败也会有状态包

2. 过滤执行时间超过1天的任务,并杀死相关进程

3. 查看当前启动的执行进程数n

4. 启动10-n个进程,按时间先后或者优先级执行子任务,并更新对应任务状态和启动时间

5.生成新的基准文件,如果没有修改,则不处理;

子任务:

1. 执行任务

2. 执行完毕后增加对应状态的状态包

3. 更新数据库

重新启动:

1.杀死所有子任务

2. 增加状态包为执行失败

启动:

1. 将所有正在执行的任务设置为执行失败,重新进入队列排队

发表评论

电子邮件地址不会被公开。 必填项已用*标注