AKA以設定的時間間隔做某事。是否有Scala特定的方式來實現定期執行?
例如,假設我想每60秒掃描一次某個目錄。
在Java中,我會用一個ScheduledExecutorService
像這樣:
Executor pool = Executors.newScheduledThreadPool(10)
pool.scheduleAtFixedRate(scanner, 0, 60, TimeUnit.SECONDS)
和工作正常。
事情是,我想我想嘗試在我的程序中使用Scala actors,但是我對如何結合actor和Java Executors或者它們是否應該是有點困惑。
我想也許我可以有一個簡單的跑步者,它只會發送一條消息給演員每N秒 - 這是否有道理?
我絕對願意使用Akka,但我有點困惑......如果演員是Scala的重要組成部分,並且Akka的API和實現更好,那麼爲什麼它不被整合到Scala本身中呢?我只能推測社區中存在這樣的衝突。 – 2010-07-07 12:41:17
演員impl。與Scala一起發貨並不是語言的一部分,它就是這樣的感覺。 Akka不能替代Actor impl。因爲它們沒有相同的API,所以隨Scala一起發貨。 像Guy Steele會說的那樣:你不能把每個好的框架都放到語言中,更好地讓每個用戶做出決定。 Akka是您如何擴展(擴展)Scala和Scala擴展的完美例子。 但是有計劃把STM加入Scala。如果你不想等待,你可以在Akka中使用STM。 – 2010-07-07 21:09:49
非常感謝Olle,非常有幫助。 但事實上,考慮到默認實現「只是」一個庫,這讓我更加好奇爲什麼不用Akka來替換它? 我想我是說,有什麼優點和缺點?必須有一些默認實現的優點,否則它不會保持默認。 – 2010-07-07 22:58:00