Я хотел бы иметь метод, который отправляет задачу async и немедленно возвращается. Мне не нужно ждать результата. Я хотел бы что-то вроде этого, чтобы работать:Используйте GPars для отправки задачи async и немедленно возвращайтесь
/**
* runs a job and return job id for later montoring.
*/
def int runJob(){
int jobId = createJob() // returns immediately
task{
doSomthingThatTakesSomeTime()
}.then {stepResult-> doSmtgElse(stepResult)}
return jobId
}
В описанной выше ситуации, задача не будет работать, так как нет ни одного вызова для .get() , однако, если я DO .get() , метод не вернет jobId, пока задача не будет завершена.
Как я могу отправить задание и вернуться немедленно?
«В ситуации выше задача выиграла 't run, так как нет вызова для .get() ": это не так. 'task (..)' создайте задачу (Runnable) и вызовите 'pool.execute' с этой задачей (которая, очевидно, выполнена - модель потоковой передачи зависит от реализации используемого вами пула). –
Спасибо за комментарий, на его основе и ответ @ pczeus, я получил что-то, что сработало хорошо, я добавлю его как ответ –