Por que o Magento 2.1.2 cron: run fornece índice indefinido: jobs?

13

Ao executar:

/usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log

Eu recebo:

[Exception]                                                                  
  Notice: Undefined index: jobs in /home/ubuntu/repo/project/vendor/magento/
               module-cron/Model/Config/Converter/Db.php on line 39  
Stevie G
fonte
O que o cron log diz?
Aivis Zvezdovs
Há um erro em update.log:setup-cron.ERROR: Database 'my-db' does not exist or specified database server user does not have privileges to access this database.
Stevie G
O problema foi que a ferramenta de migração de dados adicionou entradas cron no nível errado: o mesmo fez delete from core_config_data where path like 'crontab/jobs%'; community.magento.com/t5/Technical-Issues/…
Stevie G -
Corrigido o primeiro problema, mas agora rodando php /var/www/shootingstuff/update/cron.phpPHP Warning: require_once(/dir/update/vendor/autoload.php): failed to open stream: No such file or directory in /dir/update/app/bootstrap.php on line 15 PHP Fatal error: require_once(): Failed opening required '/dir/update/vendor/autoload.php' (include_path='.:/usr/share/php') in /dir/update/app/bootstrap.php on line 15
Stevie G

Respostas:

35

No meu caso, foi causado por alguns trabalhos cron migrados do Magento 1, em core_config_data. O Magento 2 espera que o formato seja crontab/{groupname}/jobs/{code}, enquanto os importados perdem o nome do grupo (por exemplo, padrão). Se for esse o seu caso, convém excluir as entradas erradas core_config_dataou atualizá-las para mapear os novos trabalhos cron.

rcason
fonte
3
Pode ser necessário remover todas as entradas do crontab da core_config_datatabela e depois executar php bin/magento setup:upgrade.
Ndianabasi
11
bin/magento ca:fl configfoi o suficiente para mim
Metamorfo
Você está certo! Está realmente lá no core_config_data, já que este site em que estou trabalhando foi migrado antes do M1 para o M2.1. Obrigado novamente!
MazeStricks 12/11/19
2
Excluídas 202 entradas :) DELETE FROM core_config_data WHERE path LIKE 'crontab/%' AND path NOT LIKE 'crontab/default%' AND config_id > 0Eu precisava da última parte AND config_id > 0por causa do modo de segurança.
Damodar Bashyal
11
Obrigado @DamodarBashyal por compartilhar a consulta.
chirag dodia
4

Eu tenho o mesmo erro. Este é o erro ao migrar do Magento 1 para o Magento 2. Portanto, eu o corrigi removendo todas as linhas com o "caminho" iniciado por "crobtab" na tabela "core_config_data".

Em seguida, execute o seguinte: php bin / magento setup: upgrade

E erro corrigido. Magento 2 irá gerar todos os cronjobs novamente.

Andy Kim Long
fonte
obrigado funcionou para mim.
biplab rout 13/11/19
3

Como o rcason disse: esse problema ocorre devido à migração do Magento 1 para o Magento 2. Após remover do "core _config_data" todos os valores que começam com crontab / default ... (em Config Path), o problema é resolvido e o M2 cron jobs agora execute sem problemas.

Isaac
fonte
0

Parece que você tem o formato errado da configuração do cron no banco de dados. Experimente a cron_scheduletabela de limpeza e tente executar o cron novamente.

Além disso, verifique a configuração do cron na configuração do sistema.

KAndy
fonte
11
Não há nada em #cron_schedule
Stevie G