问题标签 [horizon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1473 浏览

laravel - Laravel 地平线在新部署后仍然处于非活动状态

我们已经让 Horizo​​n 运行了很长一段时间,并且没有任何问题。但是在我们最近部署到生产环境之后,它仍然处于非活动状态,并且没有启动任何工作人员。

我看不到问题所在,我们也没有将任何错误记录到 bugsnag 中,所以我在这里有点迷失了。

调试 Horizo​​n 问题的最佳方法是什么?我已经验证过了,可以和redis对话了。仪表板还显示队列中的作业,因此这只是工作人员未启动的问题。

我们正在使用 Laravel forge 设置我们的实例,我可以确认在正确的目录中有一个运行 php artisan horizo​​n 的守护进程。在服务器上手动运行该命令也没有给我太多可以使用的信息。

我敢肯定这里一定有一些错误,但它不是被捕获/显示/什么的。关于如何正确调试的任何想法?

这是 config/horizo​​n.php 的内容:

该环境在该环境中正确设置为“生产”。

这是 config/database.php redis 部分的内容:

0 投票
2 回答
2361 浏览

php - Laravel Horizo​​n - 工作模型中的设置,如“retryAfter”、“tries”或“timeout”不起作用

我正在运行 Laravel Horizo​​n,但我注意到 Job 模型中的设置喜欢public $retryAfterpublic $triespublic $timeout工作(Laravel 文档:https ://laravel.com/docs/5.8/queues#dealing-with-failed-jobs )。

例如,要重试失败的作业 4 次,则:

不起作用,但可以'tries' => 4horizon.php配置文件中设置:

为什么这些基于每个作业的设置不适用于 Horizo​​n 并且不会覆盖常规设置?

谢谢你。

0 投票
0 回答
2175 浏览

php - 多个 laravel Horizo​​n 工作人员在同一个队列上监听

在 GKE 上,我有两个 laravel Horizo​​n 服务器副本,用于更快地使用队列。他们正在收听相同的队列。

我发现有时一项工作会同时执行多次。

这是预期会发生的,还是我做错了什么?

0 投票
0 回答
510 浏览

laravel - Laravel 5.7 任务队列(Horizo​​n)不接,尝试运行或失败任务

我们有多个任务要在同一个 api 上运行,因为 api 是速率限制的,我们需要限制调用的次数(100 x 120 秒),这样我们就不会被锁定。每个锁定持续 30 分钟,会冻结整个团队并可能产生可怕的问题。

系统建立在 Laravel 之上,我们使用队列来进行这个 api 调用。我们需要的第一项工作是,系统每晚都会对 api 进行大约 950 次调用,以将 api 上的内容与我们的数据库同步。第二个和第三个作业将是按需的,它可能需要在用户需要时分别运行大约 100 到 200 个调用。(多个用户可能在一天中的同一时间需要这个,所以队列应该防止我们超过速率限制)。

我们在主管中设置了所有内容,只有一名工人,而且似乎工作正常。但后来我们意识到它并没有按需调用所有作业(第 2 和第 3 类),如果用户需要对 8 件事情采取行动,他们会出现在队列中,但只运行 2 或 3。其余的会得到永远不要拿起或不运行,甚至没有失败。通过将工人数量增加到 8 个,这在一定程度上得到了解决。在我们这样做之后,如果用户需要对 8 个工作采取行动,但我们每晚的 900 个任务开始失败。

我们还注意到它可以处理 8 个工作,但如果我们让用户移动多达 50 个任务,它也会失败。

我们在 /etc/supervisor/conf.d 上的主管配置:

我们的队列配置:

我们的地平线配置:

我们在 database.php 上的 redis 配置:

夜间作业:

按需作业示例:

地平线任务:(被搁置的任务永远不会运行或拿起或任何东西) 任务出现在队列中,但似乎永远不会运行或失败

0 投票
1 回答
369 浏览

laravel - 如何切换 laravel 队列的运行与否

我刚刚将自己的维护模式称为 ApplicationMaintenanceMode 扩展了 CheckForMaintenanceMode。

并扩展应用程序类

然后,我也像原来一样创建自己的 DownCommand

正如你所看到的--lock_queue 我想在哪里切换队列工作者可以运行或不运行。目的是原来的维护模式,它停止所有的队列。我想要实现的是我希望队列可以在维护模式下轻松切换以运行或不运行。

有什么办法吗?我应该覆盖 QueueManager 和 Worker 类吗?

0 投票
1 回答
359 浏览

laravel - How to start/stop specific horizon supervisor?

I have a horizon question. Is there horizon have a command where i can stop/pause specific supervisor?

for example: i have 5 supervisor running like supervisor-1, supervisor-2 ... supervisor-5 in horizon.php.

what i want to achieve is how to pause/stop the supervisor-1 for temporary and enable it later?

0 投票
1 回答
680 浏览

laravel - 子域中的 Laravel Horizo​​n

如果我将 Horizo​​n 配置为在子域中运行,我应该指定什么前缀?

我做了测试,将值留空,但 ajax 请求没有指向子域。

问候,

在此处输入图像描述

0 投票
0 回答
649 浏览

laravel - 如何通过标签或 laravel 地平线中的任何内容杀死工作?

当我出于任何原因派遣工作时,我想杀死它,我该怎么做?

当我重新启动主管工作进入保留状态时,我的问题是?保留状态的任务什么时候会被 Worker 执行?

0 投票
1 回答
1259 浏览

php - Laravel Job 错误未失败且未出现在望远镜中

我已经设置了这样的电子邮件工作:

dispatch(new NewUserEmail($newUser->email, $newUser->username));

我的工作文件如下所示:

但是我故意拼错了NewUsedfr应该是NewUser 为了尝试触发异常的邮件文件。

但是当我运行该作业时,我可以看到该作业在 Horizo​​n 中完成而没有被标记为失败。看着望远镜,我在日志选项卡中看不到任何异常或错误。

所以我手动查看了我的 storage/logs 文件夹,我看到了这一行:

Class 'App\Jobs\NewUsedfr' not found {"exception":"[object]

那么为什么我的工作没有在地平线上失败,为什么上面的错误没有在望远镜中显示?望远镜没有显示存储/日志文件夹中的错误似乎有点奇怪

0 投票
1 回答
3390 浏览

laravel - 作曲家安装地平线错误不安装照明/队列

我想在我的 laravel 中安装 Horizo​​n。当我跑

但是会发生错误。

我不想更新 laravel/framework 版本,我该怎么办?