Перепланирование задачи в обработчике с помощью db-scheduler JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Перепланирование задачи в обработчике с помощью db-scheduler Java

Сообщение Anonymous »

Код: Выделить всё

class TaskData {
int id;
String status;
}

class TaskDbScheduler() {
private final SchedulerClient schedulerClient;
private final OneTimeTask oenTimeTask;
public TaskInstance schedule(TaskData taskData) {
Instant nextExecutionTime = taskData.getNextAttempt();
TaskInstance instance =
oenTimeTask.instance(taskData.getId()(), taskData);
boolean scheduled = schedulerClient.scheduleIfNotExists(instance, nextExecutionTime);
return instance;
}
}

class TaskHandler{
TaskDbScheduler scheduler; // causes circular dependency

void handle(TaskInstance taskInstance, ExecutionContext executionContext) {
var read = xyzservice.run(taskInstance.getData());

if(read == fail) {
// reschedule it after two seconds, with taskdata.toBuilder().status("delayed").build();

}
}
}
Я использую db-scheduler 15.3.0.
Я пытаюсь перенести задачу в обработчике при некоторых условиях, но это всегда приводит к ошибке циклической зависимости. Использование SchedulerClient непосредственно в обработчике также не обеспечивает возможности изменения данных задачи. Есть ли способ перенести задачу таким образом?

Подробнее здесь: https://stackoverflow.com/questions/795 ... duler-java

Вернуться в «JAVA»