{"id":8022,"date":"2017-12-05T12:39:44","date_gmt":"2017-12-05T14:39:44","guid":{"rendered":"http:\/\/www.fabriciolima.net\/?p=8022"},"modified":"2017-12-05T12:39:44","modified_gmt":"2017-12-05T14:39:44","slug":"casos-do-dia-a-dia-resolvendo-a-falha-de-um-job-automaticamente-com-a-opcao-retry-job","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2017\/12\/05\/casos-do-dia-a-dia-resolvendo-a-falha-de-um-job-automaticamente-com-a-opcao-retry-job\/","title":{"rendered":"Casos do Dia a Dia: Resolvendo a falha de um job automaticamente com a op\u00e7\u00e3o RETRY JOB"},"content":{"rendered":"<p>Ol\u00e1 Pessoal,<\/p>\n<p>Quem a\u00ed nunca teve uma falha de job onde a solu\u00e7\u00e3o para essa falha foi simplesmente executar o job novamente?<\/p>\n<p>Isso acontece muito em jobs de backup onde trafegamos os dados para outro local na rede.<\/p>\n<p>Por um momento de instabilidade na rede na madrugada ou no fim de semana, todo o backup falha. Nesse caso, ou voc\u00ea fica atento a essas notifica\u00e7\u00f5es de falhas e resolve na hora ou s\u00f3 vai resolver o problema quando chegar no trabalho.<\/p>\n<p>Temos isso em alguns clientes. J\u00e1 debatemos com eles o problema, mas muitos n\u00e3o conseguem solucionar a intermit\u00eancia de rede.<\/p>\n<p>Os jobs falhavam, receb\u00edamos as notifica\u00e7\u00f5es e t\u00ednhamos que logar no cliente para resolver. <strong>O que acaba gerando\u00a0custo para o cliente do nosso valor hora que seria utilizado para coisas mais relevantes no ambiente.<\/strong><\/p>\n<p>Amenizando o problema&#8230;<\/p>\n<p>O ideal \u00e9 que seja investigado a causa raiz dessa intermit\u00eancia na rede para resolver o problema em <strong>definitivo<\/strong>. Contudo, essa a\u00e7\u00e3o nem sempre tem um retorno r\u00e1pido e podemos continuar <strong>sem Backup<\/strong> (<span style=\"color: #ff0000;\"><strong>isso \u00e9 CR\u00cdTICO<\/strong><\/span>) ou ter que agir <strong>manualmente<\/strong> toda vez que o JOB falhar.<\/p>\n<p>Uma solu\u00e7\u00e3o <strong>paliativa<\/strong> \u00e9 utilizar a op\u00e7\u00e3o <strong>RETRY<\/strong> no JOB.<\/p>\n<p>Para\u00a0configurar essa op\u00e7\u00e3o, basta seguir os passos\u00a0abaixo conforme o print:<\/p>\n<p><strong>Propriedades do JOB -&gt; Steps -&gt; Propriedades do Step 1 -&gt; Advanced -&gt;\u00a0<\/strong><\/p>\n<p><strong>Retry attempts: 3<\/strong> (n\u00famero de tentativas)<\/p>\n<p><strong>Retry interval (minutes): 1<\/strong> (intervalo em minutos)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8023\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_Configuracao.png\" alt=\"\" width=\"691\" height=\"375\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_Configuracao.png 691w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_Configuracao-300x163.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_Configuracao-410x223.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_Configuracao-100x54.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_Configuracao-275x149.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_Configuracao-20x11.png 20w\" sizes=\"auto, (max-width: 691px) 100vw, 691px\" \/><\/p>\n<p>Para explicar o funcionamento do <strong>RETRY<\/strong>, criei um JOB que ir\u00e1 <strong>falhar por 3 vezes<\/strong> e <strong>funcionar na quarta execu\u00e7\u00e3o<\/strong>.<\/p>\n<p>Primeiro criei a tabela abaixo:<\/p>\n<pre class=\"lang:tsql decode:true\">CREATE TABLE Teste_Retry(id INT)\r\n\r\nINSERT INTO Teste_Retry VALUES(1)<\/pre>\n<p>Depois inclui o script abaixo no JOB que usa minha tabela de teste para controlar as 3 primeiras falhas e a quarta execu\u00e7\u00e3o com sucesso:<\/p>\n<pre class=\"lang:tsql decode:true \">DECLARE @Tentativa INT\r\n\r\nSELECT @Tentativa = id\r\nFROM Teste_Retry\r\n\r\n--SELECT @Tentativa\r\n\r\nUPDATE Teste_Retry\r\nSET id = id + 1\r\n\r\nIF (@Tentativa &lt; 4)\r\nBEGIN\r\nPRINT 'TENTATIVA ' + CAST(@Tentativa AS VARCHAR) + ': VOU FALHAR E EXECUTAR NOVAMENTE PELO RETRY!'\r\nSELECT 1 \/ 0\r\nEND\r\nELSE\r\nBEGIN\r\nPRINT 'TENTATIVA ' + CAST(@Tentativa AS VARCHAR) + ': EXECUTEI COM SUCESSO!!!'\r\nEND<\/pre>\n<p>Segue abaixo\u00a0algumas <strong>observa\u00e7\u00f5es\u00a0<\/strong>ap\u00f3s a execu\u00e7\u00e3o do JOB:<\/p>\n<ul>\n<li>Repare que o <strong>Status<\/strong> do JOB fica como <strong>&#8220;Between retries&#8221;<\/strong> enquanto n\u00e3o terminar as tentativas\u00a0ou executar com sucesso\/erro.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8024\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_STATUS_BETWEEN.png\" alt=\"\" width=\"665\" height=\"63\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_STATUS_BETWEEN.png 665w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_STATUS_BETWEEN-300x28.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_STATUS_BETWEEN-410x39.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_STATUS_BETWEEN-100x9.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_STATUS_BETWEEN-275x26.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_STATUS_BETWEEN-20x2.png 20w\" sizes=\"auto, (max-width: 665px) 100vw, 665px\" \/><\/p>\n<ul>\n<li>Conforme esperado, ap\u00f3s 3 tentativas, o JOB finaliza com sucesso e fica com o Status <strong>&#8220;Succeeded&#8221;<\/strong>\u00a0na <strong>tentativa 4<\/strong>.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8025\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_STATUS_SUCCEEDED.png\" alt=\"\" width=\"693\" height=\"62\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_STATUS_SUCCEEDED.png 693w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_STATUS_SUCCEEDED-300x27.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_STATUS_SUCCEEDED-410x37.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_STATUS_SUCCEEDED-100x9.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_STATUS_SUCCEEDED-275x25.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_STATUS_SUCCEEDED-20x2.png 20w\" sizes=\"auto, (max-width: 693px) 100vw, 693px\" \/><\/p>\n<ul>\n<li>Repare\u00a0como fica o History do JOB. Apesar de executar com sucesso na \u00faltima tentativa, o hist\u00f3rico fica com uma <strong>exclama\u00e7\u00e3o<\/strong> por ter utilizado o <strong>RETRY<\/strong>.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8026\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_JOB_HISTORY.png\" alt=\"\" width=\"1216\" height=\"117\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_JOB_HISTORY.png 1216w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_JOB_HISTORY-300x29.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_JOB_HISTORY-1024x99.png 1024w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_JOB_HISTORY-768x74.png 768w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_JOB_HISTORY-700x67.png 700w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_JOB_HISTORY-410x39.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_JOB_HISTORY-100x10.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_JOB_HISTORY-275x26.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/RETRY_JOB_HISTORY-20x2.png 20w\" sizes=\"auto, (max-width: 1216px) 100vw, 1216px\" \/><\/p>\n<p><strong>Fabr\u00edcio, mas como vou saber se meu backup est\u00e1 falhando e fazendo o RETRY?<\/strong><\/p>\n<p>Basta implantar minhas rotinas de <a href=\"https:\/\/www.fabriciolima.net\/blog\/2017\/10\/05\/video-criando-15-alertas-no-sql-server-em-apenas-5-minutos\/\" target=\"_blank\" rel=\"noopener\">Alerta<\/a> ou o meu <a href=\"https:\/\/www.fabriciolima.net\/blog\/2017\/05\/01\/criando-um-e-mail-de-checklist-diario-no-sql-server\/\" target=\"_blank\" rel=\"noopener\">Checklist<\/a> que ser\u00e1 avisado quando isso acontecer.<\/p>\n<p><strong>Resumindo:<\/strong><\/p>\n<p>Como podemos observar, a op\u00e7\u00e3o <strong>RETRY<\/strong> \u00e9 muito simples de ser configurada e pode ser muito \u00fatil.<\/p>\n<p>No\u00a0caso do JOB do Backup, utilizamos 3 tentativas e um intervalo de 1 hora entre as execu\u00e7\u00f5es. Dessa forma,\u00a0o problema ser\u00e1 resolvido automaticamente sem precisar de interven\u00e7\u00e3o manual (custo $$$).<\/p>\n<p>Isso j\u00e1 nos economizou horas de trabalho a noite e nos fins de semana.<\/p>\n<p><b>Gostou dessa Dica?<\/b><\/p>\n<p>Curta, comente, compartilhe com os coleguinhas\u2026<\/p>\n<p>Assine meu canal no <a href=\"https:\/\/www.youtube.com\/channel\/UCeBRAO_LLrUdSrOXIywjzRA\" target=\"_blank\" rel=\"noopener noreferrer\">Youtube<\/a> e curta minha p\u00e1gina no <a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.facebook.com\/FabricioLimaSolucoesemBancodeDados\/\" target=\"_blank\" rel=\"nofollow external noopener noreferrer\" data-wpel-link=\"external\">Facebook<\/a> para receber Dicas de Leituras, V\u00eddeos e Eventos sobre SQL Server.<\/p>\n<p>At\u00e9 a pr\u00f3xima.<\/p>\n<p>Fabr\u00edcio Lima<\/p>\n<p>Microsoft Data Platform MVP<\/p>\n<p>Consultor e Instrutor SQL Server<\/p>\n<p>Trabalha com SQL Server desde 2006<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1 Pessoal, Quem a\u00ed nunca teve uma falha de job onde a solu\u00e7\u00e3o para essa falha foi simplesmente executar o job novamente? Isso acontece muito em jobs de backup onde trafegamos os dados para outro local na rede. Por um momento de instabilidade na rede na madrugada ou no fim de semana, todo o backup [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[3,6,33,280],"tags":[1549,1260,954,18,23,1547,228,1548,33],"class_list":["post-8022","post","type-post","status-publish","format-standard","hentry","category-administracao-de-bd","category-casos-do-dia-a-dia","category-sql-server","category-virtual-pass-br","tag-agent","tag-alerta","tag-backup","tag-checklist","tag-dba","tag-falha-backup","tag-job","tag-retry-job","tag-sql-server"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":285,"url":"https:\/\/fabriciolima.net\/blog\/2010\/03\/24\/criando-um-checklist-automatico-do-banco-de-dados\/","url_meta":{"origin":8022,"position":0},"title":"Criando um CheckList Autom\u00e1tico do Banco de Dados","author":"Fabr\u00edcio Lima","date":"24 de mar\u00e7o de 2010","format":false,"excerpt":"Atualizado em: 01\/05\/2017 OBS: Segue abaixo o link de um Post com uma nova vers\u00e3o desse CheckList muito mais pr\u00e1tica e com diversas melhorias. Desta vez, o CheckList ser\u00e1 enviado por e-mail em formato HTML: Link Post: Criando um E-mail de CheckList Di\u00e1rio no SQL Server \u00a0 Ol\u00e1 pessoal, Assim\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1217,"url":"https:\/\/fabriciolima.net\/blog\/2012\/02\/09\/horario-de-verao-x-sql-server\/","url_meta":{"origin":8022,"position":1},"title":"Hor\u00e1rio de Ver\u00e3o x SQL Server","author":"Fabr\u00edcio Lima","date":"9 de fevereiro de 2012","format":false,"excerpt":"Fala Pessoal, O que voc\u00eas fazem com seus jobs do SQL Server no inicio e no fim do hor\u00e1rio de ver\u00e3o? Essa semana eu fiz alguns um teste de homologa\u00e7\u00e3o em uma VM para comprovar o que exatamente acontece com os Jobs do SQL Server. A regra do hor\u00e1rio de\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2012\/02\/job1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2012\/02\/job1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2012\/02\/job1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2012\/02\/job1.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1855,"url":"https:\/\/fabriciolima.net\/blog\/2012\/10\/29\/casos-do-dia-a-dia-error-formatting-query-probably-invalid-paramters\/","url_meta":{"origin":8022,"position":2},"title":"Casos do Dia a Dia &#8211; Error formatting query, probably invalid paramters","author":"Fabr\u00edcio Lima","date":"29 de outubro de 2012","format":false,"excerpt":"Ol\u00e1 Pessoal, Realizando uma Consultoria Remota em um cliente, criei um job para mandar um determinado alerta e esse job executava um comando como o abaixo: EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Profile', @recipients = 'E-mails', @query = 'Select em v\u00e1rias DMVs', @Subject = 'Assunto'; Contudo, esse job n\u00e3o estava funcionando e\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":8029,"url":"https:\/\/fabriciolima.net\/blog\/2017\/11\/21\/casos-do-dia-a-dia-mensagens-desnecessarias-no-history-de-um-job\/","url_meta":{"origin":8022,"position":3},"title":"Casos do Dia a Dia: Mensagens desnecess\u00e1rias no History de um JOB","author":"Fabr\u00edcio Lima","date":"21 de novembro de 2017","format":false,"excerpt":"Ol\u00e1 Pessoal, Hoje vou compartilhar com voc\u00eas uma\u00a0dica r\u00e1pida para evitar um problema que pego em alguns clientes. J\u00e1 perdi as contas de quantas vezes tentei encontrar um ERRO\u00a0no History de um JOB, mas ele tinha um milh\u00e3o de mensagens que me atrapalharam a ver a mensagem exata do erro.\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_C_PRINT.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_C_PRINT.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_C_PRINT.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":9285,"url":"https:\/\/fabriciolima.net\/blog\/2018\/08\/13\/azure-sql-database-como-criar-um-job-para-executar-uma-procedure\/","url_meta":{"origin":8022,"position":4},"title":"Azure SQL Database &#8211; Como criar um Job para executar uma procedure?","author":"Fabr\u00edcio Lima","date":"13 de agosto de 2018","format":false,"excerpt":"Fala Pessoal, Continuando a s\u00e9rie de posts sobre Azure SQL Database, dessa vez vou resolver um problema que muitos de voc\u00eas que j\u00e1 est\u00e3o trabalhando com o Azure SQL devem ter passado. Fabr\u00edcio, o Azure SQL Database n\u00e3o tem um Agent???? Como que vou rodar meus Jobs de Desfragmenta\u00e7\u00e3o de\u2026","rel":"","context":"Em &quot;Azure SQL Database&quot;","block_context":{"text":"Azure SQL Database","link":"https:\/\/fabriciolima.net\/blog\/category\/azure-sql-database\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/08\/AzureSerie04.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/08\/AzureSerie04.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/08\/AzureSerie04.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":517,"url":"https:\/\/fabriciolima.net\/blog\/2011\/03\/09\/querys-do-dia-a-dia-como-visualizar-o-historico-de-um-job\/","url_meta":{"origin":8022,"position":5},"title":"Querys do Dia a Dia &#8211; Como Visualizar o Hist\u00f3rico de um Job","author":"Fabr\u00edcio Lima","date":"9 de mar\u00e7o de 2011","format":false,"excerpt":"Querys do Dia a Dia - Como Visualizar o Hist\u00f3rico de um Job no SQL Server","rel":"","context":"Em &quot;Querys do Dia a Dia&quot;","block_context":{"text":"Querys do Dia a Dia","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/querys-do-dia-a-dia\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2011\/03\/jobs-300x253.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/8022","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/comments?post=8022"}],"version-history":[{"count":0,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/8022\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=8022"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=8022"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=8022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}