﻿1
00:00:01,110 --> 00:00:02,860
‫-: Neste vídeo, faremos uma

2
00:00:02,860 --> 00:00:05,780
‫última configuração específica do Heroku, que é para

3
00:00:05,780 --> 00:00:08,047
‫responder a um chamado "sinal do

4
00:00:08,047 --> 00:00:10,770
‫termo doente" que o Heroku emite de vez

5
00:00:10,770 --> 00:00:12,023
‫em quando.

6
00:00:13,670 --> 00:00:16,300
‫Portanto, um dinamômetro Heroku e, novamente, um

7
00:00:16,300 --> 00:00:19,460
‫dinamômetro é apenas um nome que o Heroku usa

8
00:00:19,460 --> 00:00:21,540
‫para basicamente um contêiner no

9
00:00:21,540 --> 00:00:23,230
‫qual seu aplicativo está

10
00:00:23,230 --> 00:00:26,820
‫em execução, portanto, esses dinamômetros reiniciam a cada 24 horas

11
00:00:26,820 --> 00:00:29,930
‫para manter seu aplicativo em um estado saudável.

12
00:00:29,930 --> 00:00:32,930
‫OK? E a maneira

13
00:00:32,930 --> 00:00:36,060
‫que o Heroku faz isso é enviando o chamado

14
00:00:36,060 --> 00:00:38,577
‫"sinal de doença doente" para nosso aplicativo

15
00:00:38,577 --> 00:00:41,640
‫de notas, e o aplicativo basicamente será encerrado imediatamente.

16
00:00:41,640 --> 00:00:44,680
‫Tudo bem? Agora, o problema com isso

17
00:00:44,680 --> 00:00:46,830
‫é que o desligamento pode ser muito abrupto.

18
00:00:46,830 --> 00:00:50,020
‫Portanto, isso pode deixar as solicitações que estão

19
00:00:50,020 --> 00:00:51,930
‫sendo processadas basicamente suspensas

20
00:00:51,930 --> 00:00:53,730
‫no ar e,

21
00:00:53,730 --> 00:00:55,789
‫portanto, não é o ideal.

22
00:00:55,789 --> 00:00:58,830
‫Então, basicamente, é isso que acontece também

23
00:00:58,830 --> 00:01:01,623
‫quando há uma rejeição não tratada.

24
00:01:02,850 --> 00:01:05,024
‫Portanto, aqui em nosso servidor, ponto

25
00:01:05,024 --> 00:01:07,320
‫JS, lembre-se de como, na verdade, desligamos

26
00:01:07,320 --> 00:01:09,700
‫o servidor normalmente sempre que havia uma

27
00:01:09,700 --> 00:01:12,690
‫rejeição não tratada. Tudo bem?

28
00:01:12,690 --> 00:01:13,990
‫Então agora vamos

29
00:01:13,990 --> 00:01:16,240
‫fazer algo muito semelhante quando recebermos o

30
00:01:16,240 --> 00:01:20,310
‫"sinal do termo doente". Tudo bem? Então, digamos que

31
00:01:22,410 --> 00:01:23,690
‫processo ponto

32
00:01:26,870 --> 00:01:29,660
‫a termo doente, e basicamente, realmente o

33
00:01:29,660 --> 00:01:32,300
‫termo doente é apenas um evento que

34
00:01:32,300 --> 00:01:35,160
‫pode ser emitido e que nosso aplicativo

35
00:01:35,160 --> 00:01:36,700
‫recebe e pode responder.

36
00:01:36,700 --> 00:01:40,383
‫Tão exatamente como a rejeição não tratada. Direito?

37
00:01:41,430 --> 00:01:43,293
‫Agora, aqui não temos um erro,

38
00:01:46,210 --> 00:01:47,760
‫então vamos realmente fazer um

39
00:01:48,720 --> 00:01:50,250
‫log do console

40
00:01:52,130 --> 00:01:53,713
‫aqui também, termo doente recebido.

41
00:01:56,200 --> 00:02:00,520
‫Desligando normalmente.

42
00:02:00,520 --> 00:02:02,820
‫E vamos adicionar alguns emojis

43
00:02:02,820 --> 00:02:05,400
‫aqui apenas para destacá-los em nosso console

44
00:02:05,400 --> 00:02:07,823
‫entre todos esses logs que temos lá.

45
00:02:09,580 --> 00:02:11,980
‫Tudo bem, e agora vamos

46
00:02:11,980 --> 00:02:14,700
‫realmente fazer o desligamento normal, que é

47
00:02:14,700 --> 00:02:17,173
‫basicamente apenas para fechar o servidor.

48
00:02:21,650 --> 00:02:25,270
‫Isso basicamente fechará o servidor, mas antes disso ainda

49
00:02:25,270 --> 00:02:27,150
‫tratará de todas as

50
00:02:27,150 --> 00:02:29,300
‫solicitações pendentes. E isso

51
00:02:29,300 --> 00:02:31,800
‫é exatamente o que a gente

52
00:02:31,800 --> 00:02:35,820
‫quer, ao invés de um finalização muito abrupta da aplicação, certo?

53
00:02:35,820 --> 00:02:38,310
‫Então, uma vez feito isso, vamos bloquear isso

54
00:02:38,310 --> 00:02:39,193
‫no console.

55
00:02:40,810 --> 00:02:42,133
‫Então, o ponto

56
00:02:43,580 --> 00:02:46,010
‫log do console, mais uma vez, vamos

57
00:02:47,260 --> 00:02:50,063
‫adicionar um bom emoji aqui, o processo foi encerrado.

58
00:02:50,950 --> 00:02:53,740
‫OK. E, neste caso aqui,

59
00:02:53,740 --> 00:02:56,654
‫não usamos saída de ponto de processo, porque o

60
00:02:56,654 --> 00:02:59,940
‫próprio termo de doença fará com que o aplicativo seja encerrado.

61
00:02:59,940 --> 00:03:01,970
‫Não precisamos fazer isso manualmente,

62
00:03:01,970 --> 00:03:05,100
‫como fizemos aqui. Tudo bem?

63
00:03:05,100 --> 00:03:07,990
‫Portanto, basicamente, o termo doente é um sinal usado para

64
00:03:07,990 --> 00:03:09,720
‫fazer com que um programa realmente

65
00:03:09,720 --> 00:03:12,430
‫pare de funcionar. Portanto, é uma forma

66
00:03:12,430 --> 00:03:17,430
‫muito educada de pedir que um programa seja encerrado. OK?

67
00:03:17,900 --> 00:03:21,510
‫Então, novamente, precisamos implementar essa escuta deste evento aqui,

68
00:03:21,510 --> 00:03:23,560
‫porque o Heroku a cada

69
00:03:23,560 --> 00:03:25,530
‫24 horas desligará

70
00:03:25,530 --> 00:03:28,140
‫nosso aplicativo enviando este sinal, ou

71
00:03:28,140 --> 00:03:30,470
‫este evento, para nosso aplicativo.

72
00:03:30,470 --> 00:03:32,720
‫E então, fechamos o processo normalmente,

73
00:03:32,720 --> 00:03:34,882
‫usando server dot close, o que

74
00:03:34,882 --> 00:03:37,760
‫permite que todas as solicitações pendentes ainda sejam

75
00:03:37,760 --> 00:03:41,090
‫processadas até o final. OK?

76
00:03:41,090 --> 00:03:43,390
‫Então, vamos testar isso agora.

77
00:03:43,390 --> 00:03:45,190
‫E então o que precisamos

78
00:03:45,190 --> 00:03:47,890
‫fazer primeiro é, claro, comprometer todas essas

79
00:03:47,890 --> 00:03:50,000
‫modificações em nosso repositório git e

80
00:03:50,000 --> 00:03:51,690
‫você verá que

81
00:03:51,690 --> 00:03:53,670
‫agora temos três arquivos modificados.

82
00:03:53,670 --> 00:03:56,530
‫Portanto, modificamos o servidor nesta aula e

83
00:03:56,530 --> 00:03:59,340
‫o controlador alt no app dot JS

84
00:03:59,340 --> 00:04:01,923
‫na última. Direito?

85
00:04:02,980 --> 00:04:06,050
‫Então, vamos adicionar todos eles à área de

86
00:04:06,050 --> 00:04:08,850
‫teste git add all, e então comprometer

87
00:04:09,860 --> 00:04:12,163
‫essas mudanças em nosso repositório.

88
00:04:14,600 --> 00:04:19,390
‫Então edite, Heroku, config.

89
00:04:19,390 --> 00:04:20,683
‫Vamos apenas chamá-lo assim.

90
00:04:21,800 --> 00:04:24,240
‫Tudo bem. E agora

91
00:04:24,240 --> 00:04:26,890
‫lembre-se de como basicamente reimplantamos o aplicativo.

92
00:04:26,890 --> 00:04:28,980
‫Bem, isso é muito fácil.

93
00:04:28,980 --> 00:04:33,133
‫Ramificação mestre de adendo do Git push do Heroku.

94
00:04:34,730 --> 00:04:37,260
‫Ok, agora isso basicamente enviará

95
00:04:37,260 --> 00:04:40,300
‫todas as modificações para este branch e,

96
00:04:40,300 --> 00:04:42,830
‫em seguida, reconstruirá o

97
00:04:42,830 --> 00:04:47,170
‫aplicativo no Heroku e, é claro, o reiniciará também.

98
00:04:47,170 --> 00:04:49,350
‫Portanto, você vê que ele

99
00:04:49,350 --> 00:04:51,900
‫executa todo esse processo que fazia quando implementamos

100
00:04:51,900 --> 00:04:54,490
‫o aplicativo pela primeira vez, tudo de novo,

101
00:04:54,490 --> 00:04:57,120
‫sempre que implementamos o aplicativo em outra ocasião.

102
00:04:57,120 --> 00:05:00,712
‫E agora está feito. E então, para testar o

103
00:05:00,712 --> 00:05:04,070
‫que acabamos de fazer aqui, vamos basicamente reiniciar o

104
00:05:04,070 --> 00:05:06,390
‫aplicativo manualmente. E então

105
00:05:06,390 --> 00:05:08,663
‫isso também vai enviar o termo

106
00:05:08,663 --> 00:05:12,320
‫doente para o app e deve acionar o que quer

107
00:05:12,320 --> 00:05:14,980
‫que aconteça aqui, certo? Vamos começar dando

108
00:05:14,980 --> 00:05:18,520
‫uma olhada em todos os nossos dinamômetros, então isso é algo

109
00:05:18,520 --> 00:05:21,510
‫que ainda não fizemos, então esse é o Heroku

110
00:05:23,340 --> 00:05:25,220
‫PS e você verá que

111
00:05:25,220 --> 00:05:30,010
‫temos aqui um dinamômetro da web gratuito. OK?

112
00:05:30,010 --> 00:05:32,560
‫Que roda, ou basicamente, que

113
00:05:32,560 --> 00:05:35,390
‫começa usando o comando MPM start,

114
00:05:35,390 --> 00:05:38,300
‫como mencionei em um dos vídeos anteriores.

115
00:05:38,300 --> 00:05:41,530
‫Ok, agora o que podemos

116
00:05:41,530 --> 00:05:46,530
‫fazer para reiniciar é muito simplesmente Heroku PS e reiniciar.

117
00:05:49,890 --> 00:05:52,850
‫Então não foi correto, eu acho.

118
00:05:52,850 --> 00:05:56,340
‫Agora deveria ser, e pronto.

119
00:05:56,340 --> 00:05:59,360
‫Então, vamos dar uma olhada agora

120
00:05:59,360 --> 00:06:04,150
‫nos logs, que são os logs do Heroku, traço, cauda.

121
00:06:06,940 --> 00:06:10,410
‫Tudo bem, então e aqui

122
00:06:10,410 --> 00:06:11,420
‫está.

123
00:06:11,420 --> 00:06:15,260
‫Vindo de nosso aplicativo, vemos o recebimento da licença médica e,

124
00:06:15,260 --> 00:06:17,533
‫em seguida, processamos os bloqueios encerrados.

125
00:06:18,370 --> 00:06:19,940
‫Tudo bem, e você vê

126
00:06:19,940 --> 00:06:22,170
‫isso depois disso, iniciando o processo com

127
00:06:22,170 --> 00:06:23,723
‫o comando NPM start.

128
00:06:24,980 --> 00:06:27,250
‫Certo, observe o servidor dot

129
00:06:27,250 --> 00:06:30,020
‫JS exatamente como especificamos, e agora o

130
00:06:30,020 --> 00:06:34,120
‫aplicativo está sendo executado na porta 57 dois seis sete.

131
00:06:34,120 --> 00:06:36,310
‫E então lembre-se de como eu disse antes que

132
00:06:36,310 --> 00:06:37,650
‫basicamente o Heroku executa

133
00:06:37,650 --> 00:06:40,930
‫seu aplicativo em uma porta aleatória. E então este é

134
00:06:40,930 --> 00:06:43,790
‫isso. Tudo bem? Excelente!

135
00:06:43,790 --> 00:06:46,850
‫Então, vamos sair disso, limpar isso e,

136
00:06:46,850 --> 00:06:49,040
‫com isso, encerraremos todas

137
00:06:49,040 --> 00:06:52,720
‫as coisas de configuração do Heroku em nosso aplicativo.

138
00:06:52,720 --> 00:06:56,140
‫Fantástico. Agora só faltam mais

139
00:06:56,140 --> 00:06:57,890
‫duas coisas: implementar algo

140
00:06:57,890 --> 00:07:01,129
‫chamado CORS, ou Cross Origin Resource Sharing,

141
00:07:01,129 --> 00:07:04,330
‫e então também terminar os pagamentos Stripe

142
00:07:04,330 --> 00:07:07,470
‫usando webhooks. Então, lembre-se de

143
00:07:07,470 --> 00:07:09,890
‫como prometi implementar isso um pouco mais

144
00:07:09,890 --> 00:07:12,990
‫tarde, e faremos isso nas próximas duas palestras.

145
00:07:12,990 --> 00:07:16,073
‫Tudo bem? Então, vejo você de volta em um segundo.

