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



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

https://docs.silverstripe.org/en/4/developer_guides/cli/#running-使用cron 的常规任务

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

use SilverStripeDevBuildTask;
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,这向我显示了Silversstripe的构建任务列表,而不是我的。

我显然错过了什么,有人能帮我吗?

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

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

最新更新