確認返回給調用者之前開始長執行我有一個服務方法暴露給外部客戶是這樣的:如何在Java中
public String service()
{
String track_id;
// Generate new track id for each call somehow
// let us put as 123 for simplicity
track_id = "123";
// Execution that may take 1 minute goes here ....
return track_id;
}
然後,我有一個客戶端,消費服務,如:
public void client()
{
// Method Call
String track_id = service();
// Other statements
//statement 1;
//statement 2;
//statement 3;
}
client()
正在關注的唯一事情是由service()
返回的曲目ID。 client()
不關心在service()
中發生的長執行過程,該過程延遲client()
中的語句1至3。
現在有什麼辦法讓service()
先返回track id然後運行其餘的執行。聽起來很瘋狂,但沒有任何辦法改變service()
法的方式來實現以下行爲:
public String service()
{
String track_id;
// Generate new track id for each call somehow
// let us put as 123 for simplicity
track_id = "123";
return track_id;
// Execution that may take 1 minute goes here ....
}
注:我不想存儲任何在DB然後才能運行後取以任何方式在service()
長執行。長時間執行應該在接到來電時運行client()