У меня есть шаг рабочего процесса, который при возникновении проблем выдает 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
, если not - завершить их, чтобы разблокировать полезную нагрузку и после загрузки следующего ресурса в этот путь - снова обработать рабочим процессом.
Есть идеи, как решить эту проблему, не используя CRON Scheduler
?