Job Execution : where is retry cycle configuration?

From blog post on camunda Spring boot 2.0.0 :

Job Execution
Threadpool-size and retry-cycle can now be configured via application properties.

But I couldn’t find the retry-cycle part.
Doc has no reference to retry.

Thanks

1 Like

Hi @ludoo0d0a,

The property you are looking for is failedJobRetryTimeCycle from the process engine configuration so please try:
camunda.bpm.failedJobRetryTimeCycle: R5/PT5M for example

Best regards,
Yana

1 Like

Thanks but how to set the default value from application properties (with camunda-bpm-spring-boot-starter)?

Is it related to #145 or Context.getProcessEngineConfiguration().getDefaultNumberOfRetries();
or commandContext.getProcessEngineConfiguration().getFailedJobListenerMaxRetries();
The last getFailedJobListenerMaxRetries method is set to 3, where I want only 1.

Can the following bean be used ?

@Bean
public static CamundaFailedJobConfiguration failedJobConfiguration() {
return new DefaultFailedJobConfiguration();
}

I finally achieved what I wanted by adding this config :

	@Bean
public CamundaProcessEngineConfiguration camundaProcessEngineConfiguration() {
	return new CollWkfProcessEngineConfiguration();
}

and

@Configuration
public class MyProcessEngineConfiguration extends DefaultProcessEngineConfiguration {

//custom job retry value: 1
@Value("${camunda.bpm.job-execution.default-number-of-retries:1}")
private int defaultNumberOfRetries;

//custom failedJobRetryTimeCycle Retry once (R1), 1 minute between each try (PT1M)
@Value("${camunda.bpm.job-execution.failed-job-retry-time-cycle:R1/PT1M}")
private String failedJobRetryTimeCycle;

@Override
public void preInit(SpringProcessEngineConfiguration configuration) {
	super.preInit(configuration);
	configuration.setDefaultNumberOfRetries(defaultNumberOfRetries);
	configuration.setFailedJobRetryTimeCycle(failedJobRetryTimeCycle);
 }
}

For the Camunda BPM 7.11+ version, you can use the Generic Properties method to configure the property.

camunda.bpm.generic-properties.properties.failed-job-retry-time-cycle: R3/PT30S

I hope someone will find this information useful.

7 Likes

@illai
I set this property, but when I’m raising BPMNError exception, it is not retrying the task.
can you help here?
I want to retry the same task again for few times.

Can someone explain what this property is / what it does / how it affects what gets run on process engine boot / etc? Instead of giving documentation does anyone have any experience with this property and can give information as to how it works / what it did for them?

Hi @Collin_Fox,

camunda.bpm.generic-properties.properties.failed-job-retry-time-cycle: R3/PT30S

overwrite the default engine configuration of retrying a job for three times without any time in between.

In this case, it gives the process 30 seconds before the subsequent try happens for each job that did not define a retry time cycle in the process model. Maybe the reason for the failed job is resolved in the meantime, e.g. for high network load.

Now it takes 90 seconds before you see the incident in Cockpit, if the reason for the failed job wasn’t resolved in this time.

Hope this helps, Ingo

Is there a way to disable failed-job retries entirely? We’ve added our own code to handle failed tasks, so we would like to disable all retries in Camunda (unless we are clicking the retry button ourselves in Cockpit obviously)

We would also like to disable the relaunch/launching of tasks that were running before our application was force-stopped / killed. When we boot our application back up and Camunda is initialized, it is attempting to run old tasks, but we would prefer to have a “clean slate” when we stop our application and restart it. Additionally, we would like the Process Instances count / open incident count / etc. to be cleared on Camunda boot.

What properties would allow us to do all of this? To prevent relaunch on boot, do we need to manually delete from the “act_ru_*” tables before Camunda is initialized?

Thanks a bunch