问题标签 [laravel-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 投票
3 回答
2707 浏览

php - 模型 [App\Models\Match] 没有查询结果

我正在使用 Laravel 构建一个 API,并希望使用 Laravel 通知系统发送推送通知。我有一个匹配模型(基本上是一个帖子),另一个用户可以喜欢这个匹配。当比赛被点赞时,帖子的创建者将收到推送通知。就像 Instagram、Facebook 等一样。

通常推送通知不会发送给用户。我安装了 Laravel Horizo​​n 看看是否有错误。有时通知已发送,有时未发送。使用完全相同的数据:

Laravel 地平线列表

通知有时会因完全相同的数据(相同的用户,相同的匹配)而失败。

错误如下:

Illuminate\Database\Eloquent\ModelNotFoundException:在 /home/forge/owowgolf.com/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:312 中没有模型 [App\Models\Match] 118 的查询结果

我确定匹配并且用户存在于数据库中,我在发送通知之前已经验证了这一点。有人知道出了什么问题吗?我在网上能找到的一切都是人们在将通知发送到队列之前没有保存他们的模型。但是,如果模型不存在,甚至不会到达代码将通知发送到队列的那一行。由于路由/控制器中的隐式绑定。

控制器方法:

通知:

0 投票
1 回答
1066 浏览

php - 在 Laravel Horizo​​n 资产中获取 404

我正在尝试Laravel Horizon演示和安装,我遵循了官方文档,一切对我来说都很完美,直到我在控制台中收到这个错误:控制台中的此错误

我还使用以下命令发布了我的供应商:

想知道我错过了什么吗?

0 投票
1 回答
4549 浏览

php - Laravel 队列 - 如何设置 FAST 处理器

我正在使用 Laravel 5.5,并且正在尝试设置一些快速队列处理。我一直在一个接一个地遇到障碍。

本网站是一个雇主/雇员匹配服务。因此,当雇主发布工作职位时,它需要遍历我们系统中的所有员工并计算一些变量以确定他们与工作的匹配程度。我们已经把这一切都弄清楚了,但是当系统中有数千名员工时,一次处理一个需要很长时间。所以,我准备写几个表。第一个是定义职位 ID 和状态的简单表。第二个是列出所有员工 ID、职位 ID 和正在处理的员工状态的表格。这只需几秒钟的时间来编写,然后允许用户在应用程序中继续前进。

然后我有另一个服务器设置,每分钟运行一个 cron 来检查第一个表中的新条目。找到后,它会将其标记为已启动,然后抓取所有员工并遍历每个员工并在 Laravel 中开始排队的工作。我定义的作业确实正确提交到队列并且运行queue:work实际上确实正确处理了该作业。这都是经过测试的。

但是,我遇到的问题是我已经为队列尝试了数据库(MySQL)、Redis 和 SQS,它们都非常慢。我正在使用同一台服务器尝试操作queue:work(使用 Supervisor 并尝试运行多达 300 个进程),但随后创建了 3 个不运行 cron 但仅运行 Supervisor 的克隆(每个克隆 100 个进程)并在第一台服务器。使用数据库它会处理得很好,虽然运行 10k 个排队的作业需要几个小时,但是使用 SQS 和 Redis 我会遇到很多失败。脚本花费的时间太长或其他什么。我检查了运行工人的克隆上的 CPU,它们几乎没有达到 40%,所以我没有对服务器过度征税。

我只是在阅读有关 Horizo​​n 的信息,我不确定它是否会帮助解决这种情况。我一直在尝试查找有关如何使用 Laravel 正确设置队列处理系统的信息,并且遇到的问题多于答案。

是否有人熟悉这些东西并对如何正确设置它有任何建议,以便它非常快速且无故障(假设我的代码没有错误)?

更新:根据其他一些帖子建议,我想我会分享更多细节:

  1. 我使用 Forge 作为带有 2G RAM 的 AWS EC2 服务器的设置工具。
  2. 三个克隆中的每一个都具有以下工作器配置:

    /li>
  3. 该数据库位于 Amazon RDS 上。

我很好奇 Laravel 缓存是否可以与队列系统一起使用。排队脚本的某些元素对于每次运行都是通用的,所以如果我从一开始就将这些数据排队,它可能会节省一些时间。但我不相信这会是一个巨大的进步。

0 投票
3 回答
2997 浏览

php - 在 Windows 上安装 Laravel Horizo​​n 时出错

在 Windows 10 Home Basic 中,安装 Laravel Horizo​​n 时出现以下错误。

我在 Xampp 上运行 PHP 7.1.9 版。

您的要求无法解决为一组可安装的软件包。

问题 1: - laravel/horizo​​n v1.0.8 需要 ext-pcntl * -> 您的系统中缺少请求的 PHP 扩展 pcntl。

0 投票
3 回答
4785 浏览

mamp - 如何在 MAMP pro 中启用 pcntl 扩展?

我正在将 laravel/horizo​​n 与 Osx MAMP pro 一起使用

当我运行它需要的作曲家时laravel/horizon:~1.0

它显示一条消息 -

laravel/horizo​​n v1.0.8 需要 ext-pcntl * -> 您的系统中缺少请求的 PHP 扩展 pcntl。

我检查了文件夹/Applications/MAMP/bin/php7.1.1/php/ext,它不包含 pcntl 扩展名。

我怎样才能安装它?

0 投票
1 回答
3536 浏览

php - Laravel Horizo​​n 不处理队列

由于我已将 Laravel 应用程序从 5.4 升级到 5.5 并添加了 Laravel Horizo​​n,我的队列不再工作了。这是有效的旧情况:

我使用的驱动程序是 Beanstalkd 和 Supervisord,用于监控任务并保持其正常运行。我使用以下命令运行它:

新情况:我已将队列驱动程序更新为 Redis。当我查看mydomain.com/horizo​​n时,我看到了进来但没有被处理的任务。从终端运行以下命令也不起作用:

我有 2 个已填充的队列,Redis 队列和 Beanstalkd 队列。如何完成 Beanstalkd 队列然后处理 Horizo​​n 队列?

0 投票
1 回答
507 浏览

php - 在 Laravel Horizo​​n 中只执行一次作业的设置是什么?

我对如何只运行一次作业有点困惑,因为当我将参数“tries”设置为 1 并且作业失败时,它会再执行一次。如果我将尝试参数设置为 3,则作业运行 4 次。最后,如果我设置为 0,作业将无限期运行。在 config/horizo​​n.php 中的设置下方:

在我的 config/queue.php 设置下方

和其他问题,什么设置调度“已尝试多次或运行过多”?

0 投票
1 回答
8525 浏览

php - 将 Laravel Horizo​​n 作为后台服务运行

我的问题是运行基于 Laravel Horizo​​n 的工作人员的最佳和简单的方法是什么?

我的技术栈

  • 拉拉维尔 5.5
  • 地平线
  • Redis 队列
  • 森托斯

我已经浏览了文档https://laravel.com/docs/5.5/horizo​​n

如何设置以下主管,如上面的
主管配置链接中所述

注意:我有自己的带有 php 7.1 的自定义构建服务器,后来我安装了 Horizo​​n 来运行我的作业并维护队列。

关于如何运行工人或我应该在哪里配置以上主管配置的任何建议?

0 投票
1 回答
2479 浏览

laravel - Laravel Horizo​​n 作业未出现

我已经使用Laravel Horizo​​nphp artisan horizon启动了,但仪表板状态显示为Inactive。此外,仪表板上不会出现任何已处理的队列。

我检查了我的主管(一位):

实际处理所有作业:

Horizo​​n 成功启动。
[2018-01-07 22:39:39] 处理:app\Events\GameResultEvent
[2018-01-07 22:39:39] 处理:app\Events\GameResultEvent
[2018-01-07 22:39:39]处理:app\Events\GameResultEvent
[2018-01-07 22:39:39] 处理:app\Events\GameResultEvent

为什么我的作业没有出现在 Laravel Horizo​​n 仪表板中?

0 投票
1 回答
1396 浏览

php - 标签如何与 Laravel Horizo​​n 一起使用

我在作业队列中的跟踪标签未显示我期望的标签。转班后作业不处理。

我的工作示例课程是:

现在,在我手动标记作业类电子邮件之前,它们会正常发送并且一切正常。添加标签方法杀死进程,不再正常发送电子邮件。

我从这里的网站示例https://laravel.com/docs/5.5/horizo​​n#tags

有人可以帮忙吗?谢谢