AKA fa qualcosa a intervalli impostati.Esiste un modo specifico per Scala per implementare l'esecuzione periodica?
Ad esempio, supponiamo di voler eseguire la scansione di una determinata directory ogni 60 secondi.
In Java, vorrei utilizzare un ScheduledExecutorService
in questo modo:
Executor pool = Executors.newScheduledThreadPool(10)
pool.scheduleAtFixedRate(scanner, 0, 60, TimeUnit.SECONDS)
e che funziona bene.
Il fatto è che sto pensando di provare a utilizzare gli attori di Scala nel mio programma, ma sono un po 'confuso su come combinare attori e esecutori Java, o se dovrebbero essere.
Suppongo che potrei avere un semplice corridore che invii semplicemente un messaggio a un attore ogni N secondi - ha senso?
Sono decisamente aperto ad usare Akka, ma sono un po 'perplesso ... se gli attori sono una parte così importante di Scala, e le API e l'implementazione di Akka sono migliori, perché non è integrata in Scala? Posso solo supporre che ci sia conflitto nella comunità su questo. –
L'attore impl. spedito con Scala non è davvero una parte del linguaggio, è solo così. Akka non può sostituire l'impl Actor. spedito con Scala poiché non hanno la stessa API. Come avrebbe detto Guy Steele: non è possibile inserire ogni buona struttura nella lingua, meglio avere la decisione di ogni utente. Akka è un perfetto esempio di come scala (= estendi) Scala, e Scala è fatto in scala. Ma ci sono piani per mettere STM in Scala. Se non vuoi aspettare, puoi usare l'STM in Akka. –
Grazie Olle, molto utile. Ma in effetti, dato che l'implementazione predefinita è "solo" una libreria, ciò mi rende ancora più curioso sul perché non sostituirlo con Akka? Immagino che sto dicendo, quali sono i pro e i contro? Ci devono essere alcuni professionisti dell'implementazione di default, o non rimarrebbe il default. –