Processi e messaggi
La BEAM fa tante cose insieme: processi leggerissimi che si scambiano messaggi, attori che custodiscono uno stato, e supervisori che rimettono in piedi quello che si rompe.
7 lezioni · circa 155 minuti di lettura · livello avanzato
0/7
Alla fine saprai
- Aggiungere librerie al progetto con gleam add, e capire gleam.toml e manifest.toml
- Avviare processi con process.spawn e farli parlare con Subject, send e receive
- Tenere uno stato dentro un processo, e scrivere attori con gleam/otp/actor
- Lasciare che un processo si schianti, e farlo ripartire con un supervisore
- 1 Pacchetti e dipendenze 15 min I processi non stanno nella libreria standard. Cercare un pacchetto, aggiungerlo con gleam add, e capire cosa cambia in gleam.toml e manifest.toml. 15 min
- 2 Processi 20 min Un pezzo di programma che gira insieme a main. process.spawn, l'ordine che non si può prevedere, i Pid, e perché i processi della BEAM costano così poco. 20 min
- 3 Messaggi 20 min I processi non condividono niente, quindi si parlano. Subject, send e receive, la mailbox, i tempi di attesa, e centomila processi che fanno una somma insieme. 20 min
- 4 Un processo che ricorda 25 min Un processo che resta in vita, riceve richieste e risponde. Lo stato come argomento di una funzione ricorsiva, il Subject per la risposta, process.call, e la stretta di mano all'avvio. 25 min
- 5 Attori 25 min Il processo con stato, già pronto. gleam/otp/actor, il gestore dei messaggi, actor.Next, un modulo che nasconde i messaggi dietro funzioni, e cosa succede quando una chiamata scade. 25 min
- 6 Lascia che si schianti 25 min Sulla BEAM gli errori imprevisti non si inseguono: si lascia schiantare il processo, e un supervisore lo rimette in piedi. I link, i supervisori di gleam_otp, i nomi dei processi, e il limite ai riavvii. 25 min
- 7 Riepilogo e sfida finale 25 min Processi, messaggi, attori e supervisori in una pagina, tre domande di controllo, e una biglietteria presa d'assalto da tanti clienti nello stesso istante. 25 min