2011-05-26 122 views
1

我有一個Web服務方法,它應該處理一個非常大的文件並將多個文件輸出到服務器。但是,這個Web服務只會超時,調用者無法獲得CREATED狀態。我只是想知道是否有辦法運行處理作業(啓動一個新的線程或其他東西)並返回狀態而不用等待進程完成。使用Web服務處理大文件

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(); 
} 

回答

0

該文件來自輸入流,對吧?因此,如果您要發回創建狀態(有效關閉連接),您可能會在收到整個輸入文件之前斷開連接?

這就是我認爲無論如何......在這種情況下,您只需要將超時設置爲更長的值。

如果情況並非如此,那麼我覺得可以開始一個新線程,在適當的時候處理所有內容併發回創建狀態。

+0

我很確定它會收到整個文件之前,即使得到方法的主體沒有? – denniss 2011-05-26 21:28:46

+0

@denniss不知道,這是你的代碼。通過你的評論我會說是的。好的,你已經嘗試過線程化了嗎? – JHollanti 2011-05-26 21:35:29