Laravel命令与工作之间的关系

时间:2018-08-21 16:26:06

标签: php laravel laravel-5

比方说,我有一个长期存在的过程来运行“备份数据库1”

  • 我希望每天晚上都能运行。 (并在日志中查看结果)

  • 我还想通过Artisan Command手动有时运行它。 (请参阅命令行中的结果)

  • 此外,我需要一个html按钮才能在HTML界面中运行它。 (请在屏幕上查看结果)

什么是最好的方法?

  1. 工作应召唤工匠司令部吗?
  2. 工匠指挥部应召唤一个工作吗?
  3. 都应该叫三等班吗?
  4. html按钮应调用Job然后输出日志文件吗?

注释:

Laravel文档说您可以在队列中执行命令,从而增加了混乱。

我尝试了该示例,但是--queue选项不会自动实现

https://laravel.com/docs/5.6/artisan#programmatically-executing-commands

Artisan::queue('email:send', [
        'user' => 1, '--queue' => 'default'
    ]);

1 个答案:

答案 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而不是队列,如果您向下滚动附加链接,则会看到示例