比方说,我有一个长期存在的过程来运行“备份数据库1”
我希望每天晚上都能运行。 (并在日志中查看结果)
我还想通过Artisan Command手动有时运行它。 (请参阅命令行中的结果)
此外,我需要一个html按钮才能在HTML界面中运行它。 (请在屏幕上查看结果)
什么是最好的方法?
注释:
Laravel文档说您可以在队列中执行命令,从而增加了混乱。
我尝试了该示例,但是--queue选项不会自动实现
https://laravel.com/docs/5.6/artisan#programmatically-executing-commands
Artisan::queue('email:send', [
'user' => 1, '--queue' => 'default'
]);
答案 0 :(得分:4)
创建artisan命令,并使作业在您的app / Console / Kernel中像这样调用:
$schedule->command("command_name")->dailyAt("00:00")->thenPing(env("PING_BACKUP_DB"));
如果您使用伪造来检查命令是否正在运行,请使用 ping 部分。
然后创建所需的路由并运行所需的命令see here from Laravel Docs
尝试使用Artisan:call
而不是队列,如果您向下滚动附加链接,则会看到示例