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();
}
}
}
< /code>
Я использую db-scheduler 15.3.0. < /p>
Я пытаюсь перенести задачу в обработке в некоторых условиях, но всегда в конечном итоге в ошибке круговой зависимости. Использование PradeLerclient непосредственно в обработчике также не предоставляет функциональности для изменения задач. Есть ли способ изменить задачу таким образом?
Подробнее здесь: https://stackoverflow.com/questions/795 ... duler-java