【问题标题】:Relation between a Laravel Command and a JobLaravel 命令和作业之间的关系
【发布时间】:2019-01-27 21:33:15
【问题描述】:

假设我有一个长期存在的进程来运行“备份数据库 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'
    ]);

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:

    创建 artisan 命令并让作业在您的 app/Console/Kernel 中调用它,如下所示:

    $schedule->command("command_name")->dailyAt("00:00")->thenPing(env("PING_BACKUP_DB"));
    

    如果您使用 forge 来检查您的命令是否正在运行,请使用 ping 部分。

    然后创建你需要的路由并运行你需要的命令,see here from Laravel Docs

    试试Artisan:call而不是队列,如果你在附加的链接上向下滚动一点,你会看到这个例子

    【讨论】:

      猜你喜欢
      • 2020-09-09
      • 2015-11-12
      • 1970-01-01
      • 1970-01-01
      • 2019-03-28
      • 2019-10-14
      • 2019-02-17
      • 2018-06-17
      • 1970-01-01
      相关资源
      最近更新 更多