Код: Выделить всё
public class ExampleTaskHandler implements ExternalTaskHandler {
private ExternalTask externalTask;
private VariableMap taskVariables;
@Override
public void execute(ExternalTask externalTask, ExternalTaskService externalTaskService) {
this.externalTask = externalTask;
this.taskVariables = new VariableMapImpl();
try {
executeTask();
externalTaskService.complete(externalTask, taskVariables);
} finally {
this.externalTask = null;
this.taskVariables = null;
}
}
private void executeTask() {
// do stuff and use externalTask and taskVariables
}
...
}
Подходят ли обычные переменные экземпляра или нам рекомендуется использовать ThreadLocal?
Или нам следует вообще воздерживаться от реализаций ExternalTaskHandler с сохранением состояния ? Последнее означало бы, что нам придется снова и снова передавать данные в параметрах метода, чего нам хотелось бы избежать.
Спасибо за помощь!
Подробнее здесь: https://stackoverflow.com/questions/785 ... askhandler
Мобильная версия