日期:2014-05-18  浏览次数:20671 次

任务发送这个如何设计开发呢
现有一个工作。需求大致如下:
A。数据库有张表,保存了待发任务信息,每条信息均配置不同的 重试次数、重试间隔、超时时间等信息。
B。代发任务信息数量不定,可能很多,不过应该不超过100条数量。
C。每条代发任务的开始时间不一定一样。不是同时激活开始的。
D。任务与服务器进行连接的时候会设置超时时间,连接失败后根据重试次数继续重新连接进行发送。如果超过了重试次数,则断开此连接不再重试。直至下次需要的时候再进行发送。

以上为大概的一个需求,我想请问各位,有没有什么好的方法处理这个需求。现在只想到用timer或者是多线程来解决。但是一来这两个都不是很熟悉,二来如果全部开启,可能对应用、对服务器的压力造成性能压力。所以上来求助一下大家了。希望各位踊跃讨论啊。谢谢了!

------解决方案--------------------
程序主体可以分为两个:
1、负责调度的模块;也就是定期去数据库中检索下有无需要启动的任务,有就扔给负责执行的模块;
2、负责执行的模块;基本上就是个线程池,数量自己看着办,负责执行调度模块扔过来的任务。


这类程序,要特别注意各种异常状态的记录和管理。比如你程序执行到一半,整个系统宕掉了,重启后怎么知道如何恢复那些半拉子任务?