@Bean(name = "taskRunner", destroyMethod = "shutdown") public TaskRunner createTaskRunner() { if (_numThreads == null) { throw new IllegalStateException("Number of threads have not been configured."); } logger.info("Creating shared task runner with {} threads", _numThreads); return new MultiThreadedTaskRunner(_numThreads); }
@Override public void run(final TaskRunnable taskRunnable) { logger.debug("run({})", taskRunnable); executeInternal(taskRunnable); }
@Override protected void finalize() throws Throwable { shutdown(); }
final int numThreads = ((MultiThreadedTaskRunner) taskRunner).getNumThreads();
private TaskRunner createTemporaryDelegate() { return new MultiThreadedTaskRunner(Runtime.getRuntime().availableProcessors()); }
@Override public void run(final Task task, final TaskListener listener) { logger.debug("run({},{})", task, listener); executeInternal(new TaskRunnable(task, listener)); }
private void updateTaskRunnerIfSpecified(final Configuration configuration, final TemporaryMutableDataCleanerEnvironment environment, final DataCleanerConfiguration temporaryConfiguration) { final SinglethreadedTaskrunnerType singlethreadedTaskrunner = configuration.getSinglethreadedTaskrunner(); final MultithreadedTaskrunnerType multithreadedTaskrunner = configuration.getMultithreadedTaskrunner(); final CustomElementType customTaskrunner = configuration.getCustomTaskrunner(); if (singlethreadedTaskrunner != null) { final TaskRunner taskRunner = new SingleThreadedTaskRunner(); environment.setTaskRunner(taskRunner); } else if (multithreadedTaskrunner != null) { final Short maxThreads = multithreadedTaskrunner.getMaxThreads(); final TaskRunner taskRunner; if (maxThreads != null) { taskRunner = new MultiThreadedTaskRunner(maxThreads.intValue()); } else { taskRunner = new MultiThreadedTaskRunner(); } environment.setTaskRunner(taskRunner); } else if (customTaskrunner != null) { final TaskRunner taskRunner = createCustomElement(customTaskrunner, TaskRunner.class, temporaryConfiguration, true); environment.setTaskRunner(taskRunner); } }