4

我正在构建一个使用 laravel envoy 在远程服务器上运行命令的站点。当单击按钮运行任务时,它会被添加到队列中(我使用的是 redis 和 Horizo​​n),以便在后台处理它并且根本不会减慢站点速度。我最初遇到了 ssh 访问和公钥的问题,但现在已经解决了,但剩下的一个问题是作业运行的不一致。

首先让我说这在我的 macbook pro 上不是问题,并且每次都能可靠地工作。有时在我的 debian VPS 上,通常大约 5 次中的 1 次,它会正常工作,但在其他情况下它根本不会运行脚本。我正在检查 Horizo​​n,并且每次都可以正确分派该工作,但是本应需要大约 40 秒才能完成的工作却在不到一秒的时间内完成,而且我的输出中什么也看不到(我有作业的跟踪系统,因此用户可以在运行后查看其状态和日志)。

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

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

$this->result用于存储特使任务的输出,当任务未正确运行时完全为空。

另一个是我尝试过简单地运行它exec('whoami')并没有收到任何回复。在我收到的那些正常工作的地方root

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

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

4

0 回答 0