Как установить срок выполнения задания в Activiti 5.22.0? - PullRequest
1 голос
/ 23 января 2020

Я получил ссылку на объект Job, подобный этому:

Job timer = managementService.createJobQuery().processInstanceId(execution.getParentId()).singleResult();

Может кто-нибудь сказать, как я могу установить дату выполнения таймера на произвольную дату или период времени в Activiti 5.22.0?

Я не смог найти подходящий метод в классе ManagementService или Job.

С уважением.

1 Ответ

1 голос
/ 31 января 2020

Для меня я нашел только один способ сделать это:
Создать новый таймер и установить конфигурацию из старого.
Это частичный пример того, как я это сделал, не забудьте его исправить. , чтобы избежать NPE

TimerEntity oldTimer = (TimerEntity) managementService.createJobQuery()
                                            .processInstanceId("YOUR_PROCESS_INSTANCE_ID")
                                            .timers()
                                            .singleResult();
    commandExecutor.execute(new Command<Void>() {

        @Override
        public Void execute(CommandContext commandContext) {
            oldTimer.delete();
            TimerEntity newTimer = new TimerEntity();
            newTimer.setJobHandlerConfiguration(oldTimer.getJobHandlerConfiguration());
            newTimer.setJobHandlerType(oldTimer.getJobHandlerType());
            newTimer.setExclusive(oldTimer.isExclusive());
            newTimer.setRepeat(oldTimer.getRepeat());
            newTimer.setRetries(oldTimer.getRetries());
            newTimer.setEndDate(oldTimer.getEndDate());
            newTimer.setExecutionId(oldTimer.getExecutionId());
            newTimer.setProcessInstanceId(oldTimer.getProcessInstanceId());
            newTimer.setProcessDefinitionId(oldTimer.getProcessDefinitionId());
            newTimer.setTenantId(oldTimer.getTenantId());
            // Sets a new date
            newTimer.setDuedate(new Date());
            commandContext.getJobEntityManager().schedule(newTimer);
            return null;
        }

    });
...