服务端定时任务扫描器

  • 更新超时状态

    查询出【已完成但未标记DONE状态的】超时记录;

    更新超时记录为完成状态;

  • 查找超时事件

    查询(未完成的)超时事件;

    保存超时记录;

  • 终止超时时间

    查询【NEW状态】且【已超时的】超时记录,未超时的超时记录将不做处理;

    更新【已超时的】超时记录为【PENDING】状态;

  • 查找需补偿事件,保存未补偿命令

    查询需补偿事件(即超时异常的和普通异常的) 按照从左到右的顺序,优先排除过滤较多的条件;从未结束(即无【SagaEndedEvent】状态)的最小事件开始查询;含发生异常的;排除已补偿的;排除重试的;依据唯一标识升序;

    保存未补偿命令;

  • 执行补偿

    查找状态为NEW的Command;

    更新状态为NEW的Command的状态为PENDING;

    调用客户端的补偿方法;

  • 更新已补偿命令

    查找已补偿但未结束的事件;

    更新补偿状态为DONE;

results matching ""

    No results matching ""