【发布时间】: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