Flynn: 控制器,调度程序:修复作业事件重复约束

创建于 2016-09-09  ·  4评论  ·  资料来源: flynn/flynn

目前,我们仅针对每个作业ID和状态创建一个事件(请参阅此处),但是对于一个作业两次进入特定状态是可行的。

例如,如果调度程序认为主机不正常,则该主机上的所有作业都将标记为已关闭,但是如果主机返回,则该作业可能仍在运行,因此这些作业将重新进入运行状态。 然后,涉及这些作业的后续部署将失败,因为将不会发出停机事件(停机事件从主机变得不正常时就已经存在)。

几个选择:

  • 删除唯一约束(需要考虑是否有任何东西假设事件不会重复)
  • 当调度程序将作业标记为关闭时,如果它们再次运行,请停止它们,因为替换作业已经开始

@titanous @josephglanville @jvatic的想法?

componencontroller componenscheduler kinbug

最有用的评论

或者,可以为因主机离开而消失的作业添加不同的状态。

所有4条评论

当调度程序将作业标记为已关闭时,如果它们已经开始运行,请停止它们,因为它们已经开始替换作业。

我认为这是正确的答案。

或者,可以为因主机离开而消失的作业添加不同的状态。

@titanous我认为为断开连接的主机上的作业添加新状态真的没有帮助。

当调度程序重新连接到先前已将其作业标记为已停止(或置于其他状态,如unknown )的主机时,它仍需要做出决定,是停止所有仍在运行的作业,还是尝试执行以下操作:将其标记为再次运行(导致在控制器中重复up事件)。

我认为我们应该在重新连接后立即停止工作。

Flynn无需维护,我们的基础设施将于2021年6月1日关闭。有关详细信息,请参阅自述文件

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

hadifarnoud picture hadifarnoud  ·  3评论

philiplb picture philiplb  ·  4评论

lmars picture lmars  ·  4评论

IsNull picture IsNull  ·  5评论

qwyang picture qwyang  ·  3评论