Perché Magento 2.1.2 cron: run fornisce un indice indefinito: lavori?


13

Durante l'esecuzione:

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

Ottengo:

[Exception]                                                                  
  Notice: Undefined index: jobs in /home/ubuntu/repo/project/vendor/magento/
               module-cron/Model/Config/Converter/Db.php on line 39  

Cosa dice cron log?
— Aivis Zvezdovs,

Si è verificato un errore in 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,

Il problema era che lo strumento di migrazione dei dati ha aggiunto voci cron a un livello errato: così ha fatto delete from core_config_data where path like 'crontab/jobs%'; community.magento.com/t5/Technical-Issues/…
— Stevie G

Risolto il primo numero, ma ora in esecuzione php /var/www/shootingstuff/update/cron.phpdàPHP 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

Risposte:


35

Nel mio caso è stato causato da alcuni lavori cron migrati da Magento 1, in core_config_data. Magento 2 si aspetta che il formato sia crontab/{groupname}/jobs/{code}, mentre a quelli importati manca il nome del gruppo (ovvero predefinito). In tal caso, potresti voler eliminare le voci errate core_config_datao aggiornarle per mappare i nuovi processi cron.


3
Potrebbe essere necessario rimuovere tutte le voci crontab dalla core_config_datatabella ed eseguire php bin/magento setup:upgrade.
— Ndianabasi,

1
bin/magento ca:fl configmi è bastato
— Shapeshifter il

Hai ragione! È davvero lì in core_config_data poiché questo sito che sto lavorando è stato migrato prima da M1 a M2.1, grazie ancora!
— MazeStricks,

2
202 voci cancellate :) DELETE FROM core_config_data WHERE path LIKE 'crontab/%' AND path NOT LIKE 'crontab/default%' AND config_id > 0Avevo bisogno dell'ultima parte a AND config_id > 0causa della modalità provvisoria.
— Damodar Bashyal,

1
Grazie @DamodarBashyal per aver condiviso la query.
— Chirag Dodia,

4

Ho lo stesso errore Questo è l'errore durante la migrazione da Magento 1 a Magento 2. Quindi l'ho corretto rimuovendo tutte le righe con "percorso" che inizia con "crobtab" nella tabella "core_config_data".

Quindi esegui questo: php bin / magento setup: upgrade

E errore risolto. Magento 2 genererà di nuovo tutti i cronjobs.


grazie ha funzionato per me.
— biplab in rotta dal

3

Come ha detto rcason: questo problema è dovuto alla migrazione da Magento 1 a Magento 2. Dopo aver rimosso da "core _config_data" tutti i valori che iniziano con crontab / default ... (sotto Config Path) il problema è risolto, e M2 cron jobs ora funziona senza problemi.


0

Sembra che tu abbia il formato errato della configurazione cron nel database. Prova a ripulire la cron_scheduletabella e prova a eseguire di nuovo cron.

Controlla anche le impostazioni cron nella configurazione del sistema.


1
Non c'è niente incron_schedule
— Stevie G,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.