如何在 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
在 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