【发布时间】:2020-03-26 16:18:36
【问题描述】:
我有一个工作流步骤,如果遇到问题,会抛出 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 的情况下解决它吗?
【问题讨论】: