Cron no Magento2

Crontab ou Cron no Magento 2.

Para ativar o cron no Magento 2 temos que fazer o seguinte comando:

bin/magento cron:install [--force]

Se você obtiver o erro:

Magento supports PHP 7.1.3 or later. Please read https://devdocs.magento.com/guides/v2.3/install-gde/system-requirements-tech.html

Significa que, no prompt de comando do usuário que você está, o php default NÃO é o necessário para rodar o comando, digite php e a tecla TAB para o shell expandir e mostrar todos os PHPs que estão na pasta bin.

Nesta VPS, que eu estava usando, tinha o 7.1.33 e o comando ficou assim:

php-7.1.33  bin/magento cron:install

Neste momento ele deve instalar o cron e podemos ver com o comando:
crontab -l

#~ MAGENTO START a5a5403d6326365e53099040234bd5e457b0bde22be109e5fc9dca860d46b3fd
* * * * * /usr/bin/php-7.1.33 /u/www/magento2.letti.com.br/htm/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /u/www/magento2.letti.com.br/htm/var/log/magento.cron.log
* * * * * /usr/bin/php-7.1.33 /u/www/magento2.letti.com.br/htm/update/cron.php >> /u/www/magento2.letti.com.br/htm/var/log/update.cron.log
* * * * * /usr/bin/php-7.1.33 /u/www/magento2.letti.com.br/htm/bin/magento setup:cron:run >> /u/www/magento2.letti.com.br/htm/var/log/setup.cron.log
#~ MAGENTO END a5a5403d6326365e53099040234bd5e457b0bde22be109e5fc9dca860d46b3fd

Depois verifique o log em: var/log/update.log se não tem algum problema ainda com o php. No meu caso tinha, como o php default não era o 7.1.33, ao executar na linha de comando /usr/bin/php-7.1.33, temos que informar onde se encontra o php.ini correto, senão vai aparecer erros como:

[2019-12-21 20:15:06] setup-cron.ERROR: Your current PHP memory limit is 128M. Magento 2 requires it to be set to 756M or more. As a user with root privileges, edit your php.ini file to increase memory_limit. (The command php --ini tells you where it is located.) After that, restart your web server and try again.

Estando ainda no usuário e no shell, podemos editar o cron com o comando:

crontab -e 

Descubra onde está o php.ini (caminho completo) da versão correta, do seu PHP e com as alterações corretas, que são premissas do Magento 2 (https://devdocs.magento.com/guides/v2.3/install-gde/system-requirements-tech.html)

No meu caso a chamada do comando php vai ficar assim:

/usr/bin/php-7.1.33 -c /u/www/magento2.letti.com.br ….

Então o crontab, depois de editado, ficou assim:

#~ MAGENTO START a5a5403d6326365e53099040234bd5e457b0bde22be109e5fc9dca860d46b3fd
* * * * * /usr/bin/php-7.1.33 -c /u/www/magento2.letti.com.br /u/www/magento2.letti.com.br/htm/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /u/www/magento2.letti.com.br/htm/var/log/magento.cron.log
* * * * * /usr/bin/php-7.1.33 -c /u/www/magento2.letti.com.br /u/www/magento2.letti.com.br/htm/update/cron.php >> /u/www/magento2.letti.com.br/htm/var/log/update.cron.log
* * * * * /usr/bin/php-7.1.33 -c /u/www/magento2.letti.com.br /u/www/magento2.letti.com.br/htm/bin/magento setup:cron:run >> /u/www/magento2.letti.com.br/htm/var/log/setup.cron.log
#~ MAGENTO END a5a5403d6326365e53099040234bd5e457b0bde22be109e5fc9dca860d46b3fd

Depois destes passos os erros no log pararam e o cron funcionou normalmente.

Caso queira remover o crontab do Magento 2 basta dar este comando:

bin/magento cron:remove

Espero ter ajudado,

Alfredo Letti

(ReflectionException): Class Magento\Sales\Api\Data\OrderItemSearchResultInterfaceFactory does not exist in magento2
Desabilitar/Remover comparar produto no Magento

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *