﻿1
00:00:01,110 --> 00:00:02,860
‫-: In questo video, faremo

2
00:00:02,860 --> 00:00:05,780
‫un'ultima configurazione specifica per Heroku che è quella

3
00:00:05,780 --> 00:00:08,047
‫di rispondere a un cosiddetto "segnale

4
00:00:08,047 --> 00:00:10,770
‫di termine malato" che Heroku emette di tanto

5
00:00:10,770 --> 00:00:12,023
‫in tanto.

6
00:00:13,670 --> 00:00:16,300
‫Quindi un Heroku dyno, e ancora un

7
00:00:16,300 --> 00:00:19,460
‫dyno è solo un nome che Heroku usa fondamentalmente

8
00:00:19,460 --> 00:00:21,540
‫per un contenitore in cui

9
00:00:21,540 --> 00:00:23,230
‫è in esecuzione la

10
00:00:23,230 --> 00:00:26,820
‫tua applicazione, quindi questi dyno si riavviano ogni 24 ore

11
00:00:26,820 --> 00:00:29,930
‫per mantenere la tua app in uno stato sano.

12
00:00:29,930 --> 00:00:32,930
‫Va bene? E il modo

13
00:00:32,930 --> 00:00:36,060
‫in cui Heroku lo fa è inviando il cosiddetto

14
00:00:36,060 --> 00:00:38,577
‫"segnale di termine malato" alla nostra applicazione

15
00:00:38,577 --> 00:00:41,640
‫per appunti, e l'applicazione si chiuderà praticamente immediatamente.

16
00:00:41,640 --> 00:00:44,680
‫Va bene? Ora, il problema è

17
00:00:44,680 --> 00:00:46,830
‫che lo spegnimento può essere molto brusco.

18
00:00:46,830 --> 00:00:50,020
‫Quindi questo può lasciare le richieste che sono

19
00:00:50,020 --> 00:00:51,930
‫attualmente in fase di elaborazione

20
00:00:51,930 --> 00:00:53,730
‫sostanzialmente sospese in aria,

21
00:00:53,730 --> 00:00:55,789
‫e quindi non è l'ideale.

22
00:00:55,789 --> 00:00:58,830
‫Quindi in pratica è quello che succede anche

23
00:00:58,830 --> 00:01:01,623
‫quando c'è un rifiuto non gestito.

24
00:01:02,850 --> 00:01:05,024
‫Quindi qui nel nostro server, punto JS,

25
00:01:05,024 --> 00:01:07,320
‫ricordiamo come in realtà abbiamo spento con garbo

26
00:01:07,320 --> 00:01:09,700
‫il server ogni volta che si è verificato

27
00:01:09,700 --> 00:01:12,690
‫un rifiuto non gestito. Va bene?

28
00:01:12,690 --> 00:01:13,990
‫Quindi ora faremo

29
00:01:13,990 --> 00:01:16,240
‫qualcosa di molto simile quando riceveremo il

30
00:01:16,240 --> 00:01:20,310
‫"segnale di termine malato". Va bene? Quindi diciamo process dot

31
00:01:22,410 --> 00:01:23,690
‫on ammalato,

32
00:01:26,870 --> 00:01:29,660
‫e quindi fondamentalmente, in realtà il termine malato

33
00:01:29,660 --> 00:01:32,300
‫è solo un evento che può essere

34
00:01:32,300 --> 00:01:35,160
‫emesso e che la nostra applicazione riceve e

35
00:01:35,160 --> 00:01:36,700
‫a cui può quindi rispondere.

36
00:01:36,700 --> 00:01:40,383
‫Quindi esattamente come il rifiuto non gestito. Destra?

37
00:01:41,430 --> 00:01:43,293
‫Ora qui non abbiamo un errore,

38
00:01:46,210 --> 00:01:47,760
‫quindi eseguiamo anche un

39
00:01:48,720 --> 00:01:50,250
‫registro della console

40
00:01:52,130 --> 00:01:53,713
‫qui come termine malato ricevuto.

41
00:01:56,200 --> 00:01:57,280
‫Chiudendo

42
00:01:58,690 --> 00:02:00,520
‫con grazia.

43
00:02:00,520 --> 00:02:02,820
‫E aggiungiamo alcune emoji qui

44
00:02:02,820 --> 00:02:05,400
‫solo per farlo risaltare nella nostra console

45
00:02:05,400 --> 00:02:07,823
‫tra tutti questi registri che abbiamo lì.

46
00:02:09,580 --> 00:02:11,980
‫Va bene, e ora

47
00:02:11,980 --> 00:02:14,700
‫eseguiamo lo spegnimento con grazia, che è

48
00:02:14,700 --> 00:02:17,173
‫fondamentalmente solo per chiudere il server.

49
00:02:21,650 --> 00:02:25,270
‫Quindi questo fondamentalmente chiuderà il server, ma prima ancora

50
00:02:25,270 --> 00:02:27,150
‫gestirà tutte le richieste

51
00:02:27,150 --> 00:02:29,300
‫in sospeso. E quindi

52
00:02:29,300 --> 00:02:31,800
‫è esattamente quello che vogliamo,

53
00:02:31,800 --> 00:02:35,820
‫invece di una conclusione molto brusca dell'applicazione, giusto?

54
00:02:35,820 --> 00:02:38,310
‫Quindi, una volta fatto, blocchiamolo sulla

55
00:02:38,310 --> 00:02:39,193
‫console.

56
00:02:40,810 --> 00:02:42,133
‫Quindi console

57
00:02:43,580 --> 00:02:46,010
‫dot log, aggiungiamo ancora

58
00:02:47,260 --> 00:02:50,063
‫una bella emoji qui processo terminato.

59
00:02:50,950 --> 00:02:53,740
‫Va bene. E in questo

60
00:02:53,740 --> 00:02:56,654
‫caso qui, non usiamo il punto di uscita del

61
00:02:56,654 --> 00:02:59,940
‫processo, perché il termine malato stesso causerà la chiusura dell'applicazione.

62
00:02:59,940 --> 00:03:01,970
‫Non abbiamo bisogno di farlo manualmente

63
00:03:01,970 --> 00:03:05,100
‫come abbiamo fatto qui. Va bene?

64
00:03:05,100 --> 00:03:07,990
‫Quindi, fondamentalmente, il termine malato è un segnale che

65
00:03:07,990 --> 00:03:09,720
‫viene utilizzato per causare l'arresto effettivo

66
00:03:09,720 --> 00:03:12,430
‫di un programma. Quindi è un modo

67
00:03:12,430 --> 00:03:17,430
‫molto gentile per chiedere a un programma di terminare. Va bene?

68
00:03:17,900 --> 00:03:21,510
‫Quindi, di nuovo, dobbiamo implementare questo ascolto di questo

69
00:03:21,510 --> 00:03:23,560
‫evento qui, perché Heroku ogni

70
00:03:23,560 --> 00:03:25,530
‫24 ore chiuderà

71
00:03:25,530 --> 00:03:28,140
‫la nostra applicazione inviando questo segnale,

72
00:03:28,140 --> 00:03:30,470
‫o questo evento, alla nostra applicazione.

73
00:03:30,470 --> 00:03:32,720
‫E quindi, chiudiamo il processo con grazia, utilizzando

74
00:03:32,720 --> 00:03:34,882
‫il punto di chiusura del server, che

75
00:03:34,882 --> 00:03:37,760
‫consente a tutte le richieste in sospeso di elaborare

76
00:03:37,760 --> 00:03:41,090
‫ancora fino alla fine. Va bene?

77
00:03:41,090 --> 00:03:43,390
‫Quindi, ora proviamo questo.

78
00:03:43,390 --> 00:03:45,190
‫E quindi quello che dobbiamo

79
00:03:45,190 --> 00:03:47,890
‫fare prima è ovviamente inviare tutte queste modifiche

80
00:03:47,890 --> 00:03:50,000
‫al nostro repository git e vedi

81
00:03:50,000 --> 00:03:51,690
‫che in questo

82
00:03:51,690 --> 00:03:53,670
‫momento abbiamo tre file modificati.

83
00:03:53,670 --> 00:03:56,530
‫Quindi abbiamo modificato il server in questa

84
00:03:56,530 --> 00:03:59,340
‫lezione e il controller alt in app

85
00:03:59,340 --> 00:04:01,923
‫dot JS nell'ultima. Destra?

86
00:04:02,980 --> 00:04:06,050
‫Quindi, aggiungiamoli tutti all'area di staging git add

87
00:04:06,050 --> 00:04:08,850
‫all, quindi eseguiamo il commit di queste

88
00:04:09,860 --> 00:04:12,163
‫modifiche nel nostro repository.

89
00:04:14,600 --> 00:04:19,390
‫Quindi modifica, Heroku, config.

90
00:04:19,390 --> 00:04:20,683
‫Chiamiamola così.

91
00:04:21,800 --> 00:04:24,240
‫Va bene. E ora

92
00:04:24,240 --> 00:04:26,890
‫ricorda come ridistribuiamo sostanzialmente l'applicazione.

93
00:04:26,890 --> 00:04:28,980
‫Bene, è molto facile.

94
00:04:28,980 --> 00:04:33,133
‫Git push ramo principale dell'addendum di Heroku.

95
00:04:34,730 --> 00:04:37,260
‫Ok, quindi questo invierà

96
00:04:37,260 --> 00:04:40,300
‫sostanzialmente tutte le modifiche fino a

97
00:04:40,300 --> 00:04:42,830
‫questo ramo e quindi

98
00:04:42,830 --> 00:04:47,170
‫ricostruirà l'applicazione su Heroku e, ovviamente, la rilancerà.

99
00:04:47,170 --> 00:04:49,350
‫Quindi vedi che fa tutto

100
00:04:49,350 --> 00:04:51,900
‫questo processo che ha fatto quando abbiamo

101
00:04:51,900 --> 00:04:54,490
‫distribuito per la prima volta l'applicazione di

102
00:04:54,490 --> 00:04:57,120
‫nuovo ogni volta che distribuiamo l'applicazione un'altra volta.

103
00:04:57,120 --> 00:05:00,712
‫E ora è fatto. E quindi, per testare

104
00:05:00,712 --> 00:05:04,070
‫ciò che abbiamo appena fatto qui, riavviamo fondamentalmente

105
00:05:04,070 --> 00:05:06,390
‫manualmente l'applicazione. E

106
00:05:06,390 --> 00:05:08,663
‫quindi invierà anche il termine

107
00:05:08,663 --> 00:05:12,320
‫per malattia all'app e dovrebbe innescare qualunque

108
00:05:12,320 --> 00:05:14,980
‫cosa accada qui. Quindi iniziamo dando

109
00:05:14,980 --> 00:05:18,520
‫un'occhiata a tutti i nostri dynos, quindi è qualcosa che

110
00:05:18,520 --> 00:05:21,510
‫non abbiamo ancora fatto, quindi questo è Heroku

111
00:05:23,340 --> 00:05:25,220
‫PS e quindi vedi che

112
00:05:25,220 --> 00:05:30,010
‫abbiamo qui questo dyno web gratuito. Va bene?

113
00:05:30,010 --> 00:05:32,560
‫Che funziona, o fondamentalmente che inizia

114
00:05:32,560 --> 00:05:35,390
‫usando il comando di avvio MPM, proprio

115
00:05:35,390 --> 00:05:38,300
‫come ho detto in uno dei video precedenti.

116
00:05:38,300 --> 00:05:41,530
‫Ok, quindi ora quello che possiamo

117
00:05:41,530 --> 00:05:46,530
‫fare per riavviare è molto semplicemente Heroku PS e riavviare.

118
00:05:49,890 --> 00:05:52,850
‫Quindi non era corretto credo.

119
00:05:52,850 --> 00:05:56,340
‫Ora dovrebbe essere, e questo è fatto.

120
00:05:56,340 --> 00:05:59,360
‫Quindi, diamo un'occhiata ora ai

121
00:05:59,360 --> 00:06:04,150
‫registri che sono i registri di Heroku dash dash tail.

122
00:06:06,940 --> 00:06:10,410
‫Va bene, così ed eccolo

123
00:06:10,410 --> 00:06:11,420
‫qui.

124
00:06:11,420 --> 00:06:15,260
‫Provenendo dalla nostra app, vediamo il termine di malattia ricevuto e

125
00:06:15,260 --> 00:06:17,533
‫quindi elaboriamo i blocchi terminati.

126
00:06:18,370 --> 00:06:19,940
‫Va bene, e poi lo

127
00:06:19,940 --> 00:06:22,170
‫vedi, avviando il processo con il

128
00:06:22,170 --> 00:06:23,723
‫comando NPM start.

129
00:06:24,980 --> 00:06:27,250
‫Va bene, quindi questo è il

130
00:06:27,250 --> 00:06:30,020
‫punto JS del server, proprio come abbiamo specificato,

131
00:06:30,020 --> 00:06:34,120
‫e ora l'app è in esecuzione sulla porta 57 due sei sette.

132
00:06:34,120 --> 00:06:36,310
‫E quindi ricorda come ho detto prima che

133
00:06:36,310 --> 00:06:37,650
‫fondamentalmente Heroku esegue la

134
00:06:37,650 --> 00:06:40,930
‫propria app su una porta casuale. E quindi questo è

135
00:06:40,930 --> 00:06:43,790
‫quello. Va bene? Grande!

136
00:06:43,790 --> 00:06:46,850
‫Quindi usciamo da questo, ripuliamolo, e così

137
00:06:46,850 --> 00:06:49,040
‫con quello, in realtà concludiamo

138
00:06:49,040 --> 00:06:52,720
‫tutte le cose di configurazione di Heroku nella nostra applicazione.

139
00:06:52,720 --> 00:06:56,140
‫Fantastico. Ora ci sono solo

140
00:06:56,140 --> 00:06:57,890
‫altre due cose rimaste che

141
00:06:57,890 --> 00:07:01,129
‫è implementare qualcosa chiamato CORS, o Cross Origin Resource

142
00:07:01,129 --> 00:07:04,330
‫Sharing, e poi anche finire i pagamenti Stripe

143
00:07:04,330 --> 00:07:07,470
‫usando i webhook. Quindi ricorda come

144
00:07:07,470 --> 00:07:09,890
‫ho promesso di implementarlo un po' più

145
00:07:09,890 --> 00:07:12,990
‫tardi, e così lo faremo nelle prossime due lezioni.

146
00:07:12,990 --> 00:07:16,073
‫Va bene? Quindi ci vediamo tra un secondo.

