<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sandro Rohan</title>
    <description>The latest articles on DEV Community by Sandro Rohan (@sandrorh).</description>
    <link>https://dev.to/sandrorh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F888269%2Ff25b1a7b-eb52-4e44-8a3c-c3deaf12045a.png</url>
      <title>DEV Community: Sandro Rohan</title>
      <link>https://dev.to/sandrorh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sandrorh"/>
    <language>en</language>
    <item>
      <title>Magento 2 - Como realmente funcionam as Cron Jobs?</title>
      <dc:creator>Sandro Rohan</dc:creator>
      <pubDate>Wed, 06 Jul 2022 22:57:47 +0000</pubDate>
      <link>https://dev.to/sandrorh/magento-2-como-realmente-funcionam-as-cron-jobs-53do</link>
      <guid>https://dev.to/sandrorh/magento-2-como-realmente-funcionam-as-cron-jobs-53do</guid>
      <description>&lt;h1&gt;
  
  
  Introdução
&lt;/h1&gt;

&lt;p&gt;Criei esse guia por conta da escassez de conteúdo de Magento 2 em Português e também porque esse tema é um pouco complexo. Vamos lá?&lt;/p&gt;

&lt;h2&gt;
  
  
  Por dentro das crons do Magento
&lt;/h2&gt;

&lt;p&gt;No painel admin, em Stores -&amp;gt; Configuration -&amp;gt; Advanced -&amp;gt; System ficam reservadas as configurações de crons por grupo.&lt;/p&gt;

&lt;p&gt;Ao criarmos uma cron, utilizamos o seguinte código (Exemplo):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;group&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"index"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;job&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"fcamara_mundipagg_generate_subscription_order"&lt;/span&gt;
            &lt;span class="na"&gt;instance=&lt;/span&gt;&lt;span class="s"&gt;"FCamara\MundiPaggChargesWebhook\Cron\GenerateSubscriptionOrder"&lt;/span&gt; &lt;span class="na"&gt;method=&lt;/span&gt;&lt;span class="s"&gt;"execute"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;schedule&amp;gt;&lt;/span&gt;0 0 * * *&lt;span class="nt"&gt;&amp;lt;/schedule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/job&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/group&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aqui definimos que o &lt;code&gt;group&lt;/code&gt; a ser utilizado será o &lt;code&gt;index&lt;/code&gt;, esse grupo pode ser acessado no caminho citado acima.&lt;/p&gt;

&lt;h2&gt;
  
  
  O comando bin/magento cron:run
&lt;/h2&gt;

&lt;p&gt;O comando &lt;code&gt;bin/magento cron:run&lt;/code&gt; é responsável por executar, agendar e fazer a limpeza das cron jobs. É por isso que esse comando é executado de minuto em minuto.&lt;/p&gt;

&lt;p&gt;Você pode conferir essa informação utilizando o comando crontab -l (Caso já tenha instalado as crons, caso não, instale utilizando o comando &lt;code&gt;bin/magento cron:install&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;O output deve ser algo parecido com:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* * * * * /usr/local/bin/php /var/www/html/bin/magento cron:run 2&amp;gt;&amp;amp;1 | grep -v "Ran jobs by schedule" &amp;gt;&amp;gt; /var/www/html/var/log/magento.cron.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Por dentro das configurações no painel admin
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;Generate Schedules Every&lt;/code&gt;: Determina a frequência de criação de agendamento (em minutos).&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Schedule Ahead for&lt;/code&gt;: Determina quão cedo cron jobs serão agendados (Em minutos).&lt;/p&gt;

&lt;p&gt;Exemplo: Se definirmos esse parâmetro para 1440 (24 horas), as tarefas serão agendadas com 24 horas de antecedência.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Missed if not Run Within&lt;/code&gt;: Determina que, se o cron job não for iniciado após o tempo especificado, ele não será iniciado e terá o status Missed (Em minutos).&lt;/p&gt;

&lt;p&gt;&lt;code&gt;History Cleanup Every&lt;/code&gt;: Define o tempo para que o histórico de tarefas finalizadas seja limpo (em minutos).&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Success History Lifetime&lt;/code&gt;: Tempo de vida do histórico de status de sucesso (em minutos).&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Failure History Lifetime&lt;/code&gt;: Tempo de vida do histórico de status de falha (em minutos).&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Use Separate Process&lt;/code&gt;: Utilizar processo separado.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tabela cron_schedule
&lt;/h2&gt;

&lt;p&gt;Na tabela &lt;code&gt;cron_schedule&lt;/code&gt; é possível ver o histórico de tarefas (crons) que foram realizadas. É importante se atentar ao fato de que esse histórico não é eterno, e, de acordo com como configuramos, eles serão apagados. &lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
