master下发任务异常
1. 问题描述:
针对任务下发执行失败或者超时导致实例任务链阻塞,不能够继续下发新任务的问题,现提供临时运维方案,后期将会修复任务执行逻辑。
错误失败截图:
2. 解决方式:
修改 tsf_core.appserver 的 operation 字段和修改 tsf_core.sub_task 的 status 字段。
2.1 表格字段意义
tsf_core.appserver 的 operation 字段代表意义如下:
tsf_core.sub_task 的 status 字段代表意义如下:
2.2 处理流程第一步(appserver)
首先,根据 InstanceID 来查找 appserver 表格,查看其 operation:
文字描述:select * from appserver where id = "[insanceID]";
然后,执行update操作,将operation置为0。
文字描述:update appserver set operation=0 where id = "[instanceID]";
2.3 处理流程第二步(sub_task)
首先,根据InstanceID来查找sub_task表格,查看其status:
文字描述:select * from sub_task where appserver_id = "[instanceID] order by mtime desc limit 1;"
然后,执行update操作,将status置为2或者1。其中2表示失败,1表示成功。我们需要根据操作在实例中是否执行成功来决定update的值。通常为1(因为通常是成功的,只是task上报给master之后,master更新过程比较缓慢)。
文字描述:update sub_task set status = [status] where task_id = "[task_id]";