Обработка большого файла с помощью веб-службы - PullRequest
1 голос
/ 27 мая 2011

У меня есть метод веб-службы, который должен обрабатывать очень большой файл и выводить несколько файлов на сервер. Однако этот веб-сервис просто прекратит работу, и у вызывающего не будет возможности получить статус CREATED. Мне просто интересно, есть ли способ запустить задание обработки (запуск нового потока или что-то еще) и вернуть статус, не дожидаясь завершения процесса.

public Response processFile(InputStream inputStream){

   //I want to process the file here
   //but I dont want the invoker to wait for that process to finish
   //I just want the response to be returned right away
   return Response.status(Response.Status.CREATED).build();
}

1 Ответ

0 голосов
/ 27 мая 2011

Файл поступает из входного потока, верно? Таким образом, если вы отправите обратно статус CREATED (фактически закрыв соединение), вы можете разорвать соединение, прежде чем получите весь входной файл?

Это то, о чем я думал в любом случае ... В этом случае вы просто захотите установить для тайм-аута более продолжительное значение.

Если это не так, тогда, я думаю, было бы неплохо начать новый поток, своевременно обработать все и вернуть статус CREATED.

...