【发布时间】:2021-02-22 00:51:26
【问题描述】:
我正在尝试通过 Drupal 8 站点的 crontab 执行 drush 命令。这些命令在我直接调用它们时有效,但是当通过我的用户的 crontab 运行时,我收到以下错误:
\Drupal::$container 尚未初始化。 \Drupal::setContainer() 必须是
用真正的容器调用。
其他帖子表明这是旧版本 Drush 中的一个错误,但我使用的是 10.3.5。
在过去的几个小时里,我尝试了很多事情,包括重新配置 cron,但最终似乎 Drush 没有正确引导 Drupal,但我需要能够从 cron 运行队列
这是我正在运行的测试命令,它只是添加到 Drupal 日志中...
crontab(我的用户)
* * * * * /var/www/html/vendor/bin/drush scr /var/www/html/scripts/what.php -r /var/www/html/web
什么.php
<?php
\Drupal::logger('mymod')->info("CHECKING IN FROM CRON CLI...");
这是另一个命令,更接近我想要完成的任务...... crontab(我的用户)
* * * * * /var/www/html/vendor/bin/drush queue:run commerce_recurring -r /var/www/html/web >> /var/www/html/private/logs/cron_commerce_recurring.log
我在这里得到的错误是:
命令队列:运行未找到。 Drush 无法查询数据库。作为
结果,许多命令不可用。使用 --debug
重新运行您的命令 查看相关的日志消息。
使用 drupal 控制台运行此命令时出现同样的错误。
任何建议表示赞赏。
谢谢。
【问题讨论】:
-
-r 是 --root 的简写。