code: public void initAsyncExecutor() {
      if (asyncExecutor == null) {
        DefaultAsyncJobExecutor defaultAsyncExecutor = new DefaultAsyncJobExecutor();
  
        // Message queue mode
        defaultAsyncExecutor.setMessageQueueMode(asyncExecutorMessageQueueMode);
  
        // Thread pool config
        defaultAsyncExecutor.setCorePoolSize(asyncExecutorCorePoolSize);
        defaultAsyncExecutor.setMaxPoolSize(asyncExecutorMaxPoolSize);
        defaultAsyncExecutor.setKeepAliveTime(asyncExecutorThreadKeepAliveTime);
  
        // Threadpool queue
        if (asyncExecutorThreadPoolQueue != null) {
          defaultAsyncExecutor.setThreadPoolQueue(asyncExecutorThreadPoolQueue);
        }
        defaultAsyncExecutor.setQueueSize(asyncExecutorThreadPoolQueueSize);
  
        // Acquisition wait time
        defaultAsyncExecutor.setDefaultTimerJobAcquireWaitTimeInMillis(asyncExecutorDefaultTimerJobAcquireWaitTime);
        defaultAsyncExecutor.setDefaultAsyncJobAcquireWaitTimeInMillis(asyncExecutorDefaultAsyncJobAcquireWaitTime);
  
        // Queue full wait time
        defaultAsyncExecutor.setDefaultQueueSizeFullWaitTimeInMillis(asyncExecutorDefaultQueueSizeFullWaitTime);
  
        // Job locking
        defaultAsyncExecutor.setTimerLockTimeInMillis(asyncExecutorTimerLockTimeInMillis);
        defaultAsyncExecutor.setAsyncJobLockTimeInMillis(asyncExecutorAsyncJobLockTimeInMillis);
        if (asyncExecutorLockOwner != null) {
          defaultAsyncExecutor.setLockOwner(asyncExecutorLockOwner);
        }
  
        // Reset expired
        defaultAsyncExecutor.setResetExpiredJobsInterval(asyncExecutorResetExpiredJobsInterval);
        defaultAsyncExecutor.setResetExpiredJobsPageSize(asyncExecutorResetExpiredJobsPageSize);
  
        // Shutdown
        defaultAsyncExecutor.setSecondsToWaitOnShutdown(asyncExecutorSecondsToWaitOnShutdown);
  
        asyncExecutor = defaultAsyncExecutor;
      }
  
      asyncExecutor.setProcessEngineConfiguration(this);
      asyncExecutor.setAutoActivate(asyncExecutorActivate);
    }
docs: /////////////////////////////////////////////////////////////