我有以下要求阿卡模型計算任務
- 連接到同一個用戶名和密碼,網絡服務器,並得到一個authetication令牌
- 讀文件,以獲得不同的參數
- 使用身份驗證令牌來回步驟1和步驟2的參數發送http請求到網絡服務器
現在我有一個演員執行所有上述任務,如下所示
package akka.first.java;
import akka.actor.UntypedActor;
public class MySingleActor extends UntypedActor {
public void onReceive(Object msg) {
if(msg instanceof sendRequest) {
//Connect to a webserver with a username and password and get an authetication token
String token = getToken();
// Read file to get different parameters
Param param = readFile();
// Use the auth token fro step 1 and parameters from step 2 to send an http request to the web server
Response response = sendRequest (server, token, param);
}
}
private Param readFile() {
// reads file
}
private String getToken() {
//gets token
}
}
readFile操作包含各種子任務,我認爲它應該是一個單獨的actor。 但是由於參與者需要從readFile()操作返回來執行發送請求的主要任務,所以這可能會阻止根據文檔不推薦這麼做,那麼最好的方法是什麼?期貨?
你是指阿卡期貨?如果我轉發響應,它會阻止,直到收到響應? –
在readfile參與者,使用scala期貨,並onsuccess轉發迴應給發件人 – gaston
我仍然不清楚,你可以添加更多的上下文來看代碼的樣子?未來將是演員從演員系統外部獲取的數據的佔位符正確,而這個未來將演變爲'MySingleActor演員作爲轉發的味精? –