External Task Retry Java

I am also trying to understand the behavior but slightly confused. Below is my scenario and would like to confirm the behavior.

  1. Initiated two external task client workers for the same topic with lock duration of 30 seconds. I reckon this means that each workers fetch and lock operation will be locked for 30 seconds. In other words, they will not fetch the task for the subscribed topic for 30 seconds
.lockDuration(30000) // 30 seconds
  1. Every time a retry needs to be done will set below values in handle failure, assuming

maxRetry = 2

.setRetryTimeout(2000) // 2 seconds
.setRetries(maxRetry - 1)

I also have asyncResponseTimeout () configured as 10000 i.e. 10 seconds

With retries and retryTimout , workers can specify a retry strategy. When setting retries to a value > 0, the task can be fetched again after retryTimeout expires. When setting retries to 0, a task can no longer be fetched and an incident is created for this task.

If above is applied to my scenario, then after 2 seconds, this task is available for fetching but it can only be fetched by a worker(s) if lock duration is expired? Is my understanding correct?

How asyncResponseTimeout affects it?

What values I need to use if retries needs to be done for 30 seconds?

Please help me to understand it.

Thanks