1
nybux 2014-08-26 15:03:48 +08:00 2
1.正在执行在附加一个服务器id信息
2.服务器重启后,把库中所有id=自己,状态等于正在执行的都更新成未执行 |
2
lucky2touch 2014-08-26 17:37:19 +08:00 1
应该需要一个类似的仲裁程序,监控正在执行的任务状态,如果检测到服务器挂了,则将任务状态重置,或者任务出现超时的情况,强制转移任务之类的。
|
3
uleone OP @lucky2touch 这样的仲裁程序有没有已有的实现?可以直接拿来用的。不知道Zookeeper能不能做到?不太熟
|
4
songco 2014-08-27 09:50:45 +08:00 1
@uleone Zookeeper 是可以的, 你们目前多个服务器访问同一张表怎么做任务dispatch的?
实现方法有很多, 你们的任务实时性要求高吗? 任务执行的时间一般有多长? |
5
cxxrocks 2014-08-27 17:44:31 +08:00
我提一个方案,可以把队列放在每个节点上。
如果某个节点空闲,可以从其他节点队列的尾巴上取走任务。 |
6
lambdaT 2014-09-01 14:20:29 +08:00
同意楼上, 设置一个队列, 数据库是用来记录 任务日志的(开始, running, failure, success);
|