【问题标题】:How can I run a BuildTask task via the command line in SilverStripe 4?如何在 SilverStripe 4 中通过命令行运行 BuildTask 任务?
【发布时间】:2021-02-19 00:07:16
【问题描述】:

在 SilverStripe 4 文档中,它说我可以扩展 DevBuild 类并在 unix 命令行中使用 cron 调用任务。

https://docs.silverstripe.org/en/4/developer_guides/cli/#running-regular-tasks-with-cron

我在 app/src/Tasks/MyTask.php 中编写了一个名为 MyTask 的类,如下所示:

use SilverStripe\Dev\BuildTask;

class MyTask extends BuildTask
{
    private static $segment = 'MyTask';

    protected $title = 'My Task';
    protected $description = 'A task that I want to run via cron job';
    protected $enabled = true;

    public function run($request){
        exit('Done run!');
    }
}

在我dev/build?flush=1 之后,我可以通过mysite.com/dev/tasks/MyTask 的URL 成功运行任务。 但是我跑不了./vendor/bin/sake dev/tasks/MyTask

注意:我可以通过命令行运行./vendor/bin/sake dev/tasks,这会显示 Silverstripe 的构建任务列表,而不是我的。

我显然遗漏了一些东西,有人可以帮忙吗?

【问题讨论】:

  • 确保运行vendor/bin/sake dev/tasks flush=1 刷新缓存,对于 CLI 和 Web 浏览器,它可能是不同的缓存
  • 就是这样,谢谢罗比。

标签: silverstripe silverstripe-4


【解决方案1】:

有关解决方案,请参阅 Robbie Averill 的评论。

确保您运行 vendor/bin/sake dev/tasks flush=1 来刷新您的 缓存,它可能是 CLI 和 Web 浏览器的不同缓存 –Robbie Averill

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多