如何在 SilverStripe 4 中通过命令行 运行 BuildTask 任务?

How can I run a BuildTask task via the command line in SilverStripe 4?

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

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

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

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 的构建任务列表,而不是我的。

我显然遗漏了什么,有人可以帮忙吗?

请参阅 Robbie Averill 对解决方案的评论。

Make sure you run vendor/bin/sake dev/tasks flush=1 to flush your cache, it may be a different cache for the CLI and web browser –Robbie Averill