Sto solo imparando, e mi piace molto, il pattern degli attori. In questo momento sto usando Scala, ma mi interessa lo stile architettonico in generale, come è usato in Scala, Erlang, Groovy, ecc.Ha senso utilizzare un pool di attori?
Il caso a cui sto pensando è dove devo fare le cose contemporaneamente, come, diciamo "eseguire un lavoro".
Con il threading, vorrei creare un pool di thread e una coda di blocco e fare in modo che ogni thread esegua il polling della coda di blocco ed elabori i lavori mentre entravano e uscivano dalla coda.
Con gli attori, qual è il modo migliore per gestirlo? Ha senso creare un gruppo di attori e in qualche modo inviare loro messaggi contenenti o lavori? Forse con un attore "coordinatore"?
Nota: Un aspetto del caso che ho dimenticato di dire era: che cosa se voglio limitare il numero di posti di lavoro la mia app elaborerà contemporaneamente? Forse con un settaggio di configurazione? Stavo pensando che un pool potrebbe renderlo facile farlo.
Grazie!
Sì, ha senso limitare il numero di attori che lavorano su un elenco di attività. Almeno Erlang ti dà abbastanza concorrenza da poter esaurire la maggior parte delle risorse di sistema generando abbastanza processi che li utilizzano. – Christian
Ho cercato di riformulare questa domanda in un modo più focalizzato, specifico e concreto qui: http://stackoverflow.com/questions/2312195/how-to-limit-concurrency-when-using-actors-in-scala –