Pourquoi Magento 2.1.2 cron: run donne-t-il des emplois à un index non défini?

13

Lors de l'exécution:

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

Je reçois:

[Exception]                                                                  
  Notice: Undefined index: jobs in /home/ubuntu/repo/project/vendor/magento/
               module-cron/Model/Config/Converter/Db.php on line 39  
Stevie G
la source
Que dit cron log?
Aivis Zvezdovs
Il y a une erreur dans 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
Le problème était donc que l'outil de migration des données a ajouté des entrées cron au mauvais niveau: tout comme delete from core_config_data where path like 'crontab/jobs%'; community.magento.com/t5/Technical-Issues/…
Stevie G
Correction du premier problème mais en cours d'exécution php /var/www/shootingstuff/update/cron.phpdonnePHP 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

Réponses:

35

Dans mon cas, cela a été causé par certains travaux cron migrés depuis Magento 1, dans core_config_data. Magento 2 s'attend à ce que le format soit crontab/{groupname}/jobs/{code}, tandis que ceux importés manquent le nom du groupe (c'est-à-dire par défaut). Si tel est votre cas, vous souhaiterez peut-être supprimer les entrées incorrectes core_config_dataou les mettre à jour pour mapper les nouvelles tâches cron.

rcason
la source
3
Vous devrez peut-être supprimer toutes les entrées crontab de la core_config_datatable, puis exécuter php bin/magento setup:upgrade.
Ndianabasi le
1
bin/magento ca:fl configme suffisait
Shapeshifter
Tu as raison! C'est vraiment là dans core_config_data puisque ce site sur lequel je travaille a été migré auparavant de M1 vers M2.1, Merci encore!
MazeStricks
2
202 entrées supprimées :) DELETE FROM core_config_data WHERE path LIKE 'crontab/%' AND path NOT LIKE 'crontab/default%' AND config_id > 0J'avais besoin de la dernière partie à AND config_id > 0cause du mode sans échec.
Damodar Bashyal
1
Merci @DamodarBashyal pour le partage de la requête.
chirag dodia
4

J'ai la même erreur. C'est l'erreur lors de la migration de Magento 1 vers Magento 2. Je l'ai donc corrigé en supprimant toutes les lignes ont "chemin" commencer par "crobtab" dans la table "core_config_data".

Ensuite, exécutez ceci: configuration php bin / magento: mise à niveau

Et erreur corrigée. Magento 2 générera à nouveau tous les cronjobs.

Andy Kim Long
la source
merci ça a marché pour moi.
déroute biplab
3

Comme l'a dit rcason: ce problème est dû à la migration de Magento 1 vers Magento 2. Après avoir supprimé de "core _config_data" toutes les valeurs commençant par crontab / default ... (sous Config Path), le problème est résolu et les travaux cron M2 maintenant exécuté sans problème.

Isaac
la source
0

On dirait que vous avez le mauvais format de configuration cron dans la base de données. Essayez la cron_scheduletable de nettoyage et essayez à nouveau d'exécuter cron.

Veuillez également vérifier le paramètre cron dans la configuration du système.

KAndy
la source
1
Il n'y a rien danscron_schedule
Stevie G