几分钟后清除工作流程

Purging workflow after couple minutes

我有一个工作流程步骤,如果遇到问题,会抛出 WorkflowException 一条消息和堆栈跟踪,实际上 - 使用有效负载阻止整个工作流程启动器。最后,工作流无限期地处于 RUNNING 状态,并且不处理任何已阻止负载的更新。这种情况需要管理员手动终止工作流。

简单的工作流程如下所示:

@Service
@Component
@Properties({
        @Property(name = Constants.SERVICE_DESCRIPTION, value = "Workflow"),
        @Property(name = "process.label", value = "Workflow Step") })
public class WorkflowStep implements WorkflowProcess {

    @Override
    public void execute(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap metaDataMap)throws WorkflowException {       
        try {
            ... doing some stuff ...
        } catch (Exception e) {
            throw new WorkflowException(e.getMessage(), e);
        }
    }
}

我想在即 2 分钟后检查工作流是否 COMPLETED 如果不是 - 终止它们以解锁有效载荷,并在将下一个资产上传到此路径后 - 再次由工作流处理。

知道如何在不使用 CRON Scheduler 的情况下解决它吗?

如果捕获到异常,为什么不立即终止工作流而不是抛出 WorkflowException? 你可以记录任何你想要的,处理错误然后终止...

BR, 奥利弗