部署时Laravel队列运行的Envoy任务不一致

时间:2019-02-13 11:38:12

标签: php laravel server laravel-horizon laravel-envoy

我正在构建一个使用laravel envoy在远程服务器上运行命令的站点。当单击一个按钮来运行任务时,该任务将被添加到队列中(我正在使用Redis和Horizo​​ n),以便在后台对其进行处理,并且不会降低网站的运行速度。我最初在ssh访问和公共密钥方面遇到问题,但现在进行了排序,但是剩下的一个问题是作业运行的不一致性。

首先让我说这不是我的macbook pro上的问题,并且每次都能可靠地工作。有时在我的Debian VPS上,通常大约5倍于1倍,它可以正常工作,但其他人则根本无法运行该脚本。我正在检查范围,每次作业肯定都正确分配,但是应该在不到一秒钟的时间内完成大约40秒才能完成的作业,但是我的输出没有任何显示(我已经作业跟踪系统,以便用户在运行后可以查看其状态和日志。

我用于运行特使任务的代码是

exec('cd ' . base_path() . ' && /home/admin/.composer/vendor/bin/envoy run ' . $this->task . $this->query, $this->result);

$this->result用于存储envoy任务的输出,如果任务运行不正确,它将完全变空。

另一个是我尝试仅运行exec('whoami')并没有收到任何回报。在正常工作的那些地方,我收到了root

我确实认为,也许不同的队列工作人员正在使用不同的系统用户,因此也尝试使用不同的公共密钥进行连接,但是我找不到任何信息来支持此操作,但这可以解释它的不规则性。

任何见解或帮助将不胜感激!

0 个答案:

没有答案