【问题标题】:How do you run Drush commands via crontab on Drupal 8如何在 Drupal 8 上通过 crontab 运行 Drush 命令
【发布时间】: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 的简写。

标签: drupal-8 drush


【解决方案1】:

这原来是一个数据库连接问题。棘手的部分是解决错误。我必须安装一个 MTA,以便 cron 可以将错误写入本地用户的邮箱,然后添加 --debug 选项,这样我才能看到真正的错误。

我正在处理一个 DDEV 实例,但由于某种原因,没有加载 DDEV 设置。改天的问题...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-14
    • 2020-09-10
    • 2019-01-22
    • 2011-03-09
    • 2022-01-09
    • 2016-02-26
    • 2021-09-30
    • 1970-01-01
    相关资源
    最近更新 更多