我有一個斯卡拉演員,每當客戶端請求時都會做一些工作。何時,並且只有當沒有客戶端處於活動狀態時,我希望Actor才能執行一些後臺處理。在Scala Actor中做空閒處理的最簡單方法是什麼?
這樣做最簡單的方法是什麼?我可以想到兩種方法:
產生一個超時的新線程並定期喚醒演員。一個簡單的方法,但我想避免創建另一個線程(以避免額外的代碼,複雜性和開銷)。
Actor類有一個reactWithin方法,該方法可以用來從actor本身超時。但文檔說該方法不會返回。所以,我不知道如何使用它。
編輯;澄清:
假設後臺任務可以分解成可以獨立處理的更小的單位。
儘管我的解決方案在實踐中有效,但我認爲這更具慣用性,因此接受了它。我原本想使用reactWithin,但沒有在'TIMEOUT'上找到任何文檔 – HRJ 2009-10-17 04:19:08