问题描述
在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的构建任务列表,而不是我的。
我显然缺少了什么,有人可以帮忙吗?
解决方法
有关解决方案,请参见Robbie Averill的评论。
确保您运行vendor / bin / sake dev / task flush = 1来刷新您的 缓存,对于CLI和Web浏览器–Robbie Averill
可能是不同的缓存