在 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 对解决方案的评论。
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 - 如何通过 SilverStripe 4 中的命令行运行 BuildTask 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64711535/