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. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.