Очистка рабочего процесса через пару минут - PullRequest
1 голос
/ 26 марта 2020

У меня есть шаг рабочего процесса, который при возникновении проблем выдает 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?

1 Ответ

2 голосов
/ 29 марта 2020

Если вы поймаете исключение, почему бы вам не прервать рабочий процесс прямо тогда, а не вызвать исключение WorkflowException? Вы можете регистрировать все, что захотите, обработать ошибку и завершить работу ...

BR, Оливер

...