在尝试启动地平线后,我试图调用自定义命令以从CLI调度作业。
journal:add是一个自定义命令,用于将日志详细信息添加到mysql数据库。
$this->line('<fg=red>Migrate and refreshing databases</>');
sleep(1);
$this->call('migrate:refresh');
$this->line('<fg=red>Flushing the redis queue</>');
sleep(1);
exec('redis-cli flushall');
sleep(1);
$this->line('<fg=red>Starting Horizon</>');
$this->call('horizon');
sleep(1);
$this->line('<fg=red>Adding test journal</>');
$this->call('journal:add', ['issn'=>'1098-2418']);
预期结果是在地平线开始后将日记帐作业分派到队列中。
当前,代码启动Horizon,但此后不执行任何操作。
答案 0 :(得分:0)
Laravel Horizon
不会执行或退出,它会继续运行以等待新作业。如果您想实现自己想要的。创建两个命令,第一个执行Horizon
,第二个作业调度该作业。
您在做什么,似乎是一种错误的方法,在我不得不将其他命令中的命令组合在一起的情况下,从来没有发生过。按所需顺序执行给定命令怎么办?