问题标签 [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.
php - 如何解决“laravel/horizon v1.1.0 需要 ext-pcntl * -> 您的系统中缺少请求的 PHP 扩展 pcntl”?
当我composer install
在命令提示符下运行时,存在如下错误:
我该如何解决这个错误?
php - Redis“从服务器读取行时出错。” Laravel 5.6 升级后
今天升级到 Laravel 5.6 后,我遇到了很多 Redis 错误,都说:
应用程序堆栈包括:
- 拉拉维尔 5.6
- 地平线 1.0.6
- 回声 1.3.2
- Laravel 回声服务器 1.3.6
在 5.5 上一切都运行顺利,我发现的所有文档似乎都没有解决这种情况。除了一些 Cache 使用外,没有通过外观或应用程序内的服务容器之外的 Redis 使用。
有没有其他人遇到过这个?我已经三次检查了升级指南以及 GitHub 发行说明,没有任何内容被认为是可疑的。根据堆栈跟踪,它似乎与 Horizon 相关。
全栈跟踪
laravel - 我可以在 Laravel 5.3 中安装 Laravel Horizon 吗?
我的项目使用 laravel 5.3
我想在我的项目中实现 laravel Horizon
我在文档 laravel 5.3 中搜索参考。但我没找到。它似乎只存在于 laravel 5.5
我可以在 laravel 5.3 中安装 laravel horizion 吗?
php - 工匠队列:工作和工匠地平线:工作有什么区别?
我在 Horizon 中使用 Laravel 队列和 Redis。主管正在运行artisan horizon
,这反过来又产生了进程/usr/bin/php7.2 artisan horizon:work redis
是否需要运行queue:work
或者 Horizon 已经可以自己处理队列?
php - Laravel 5.5 - Horizon 没有自动运行第二个队列
在 Forge 上使用 Laravel Horizon 和 Redis,我有一个default
队列和一个notifications
队列。
通知作业都是在最近的作业下以暂停状态建立的,不会得到处理。这是使用的代码:
我发现处理它们的唯一方法是显式手动运行以下命令进行notifications
处理:
这不应该是自动的吗?我错过了什么?
php - Laravel - 作业报告失败(即使它正确退出)
我正在使用最新版本的 Homestead。我也设置了 Laravel Horizon。我使用 Redis 作为队列驱动程序。Laravel 是 5.6 版,是全新安装的。
发生的事情是我的工作都失败了(即使工作正确退出)。
我正在使用自定义命令通过命令行运行作业:
应用程序/控制台/命令/crawl.php
应用程序/工作/Crawl.php
应用程序/Crawl.php
工人日志
来自 Horizon 失败的工作细节
laravel-worker.conf
配置/队列.php
.env
概要
看着我的worker.log
我可以看到我的班级的输出已经奏效:
但该作业被报告为失败。为什么?奇怪的是,同样在 中,它对一份工作worker.log
说两次:Processing
任何帮助是极大的赞赏!
更新
删除exit()
已解决问题 - 这很奇怪,因为 PHP 手册说您可以使用exit()
“正常”退出程序:
laravel - Laravel Homestead 中没有主管在运行
我最近在一个在 Homestead Vagrant 盒子上运行的 Laravel 项目上安装了 Horizon。
我的问题是队列工作人员没有接任任何工作。我没有主管:
这是我的主管(horizon.conf)配置:
当我启动这台机器时,我的日志和 Web 界面显示“ Horizon 已成功启动。 ”。
而我的地平线(horizon.php)配置:
我的主管似乎也很活跃:
关于我的主管为什么不工作的任何想法或想法?
php - Laravel 5.5 - 队列事件监听器的 Horizon 自定义作业标签
在Horizon 的文档中,它提到可以将自定义标签添加到排队的事件侦听器中。但是,我找不到任何方法来拉入包含我需要的数据的事件实例。给出的示例使用类型提示将相关模型从服务容器中拉出,并将其分配给构造函数中的实例变量,然后在tags()
方法中使用该实例变量来获取有关正在操作的特定模型实例的数据。
但是,在排队的事件侦听器中执行此操作时,它不起作用。事实上,构造函数似乎根本没有被调用,因为模型在执行时被序列化并“重新水化”。所以构造函数中的类型提示什么都不做,并且tags()
似乎在之前被调用过handle()
,所以我无法访问我正在收听的事件对象。
有谁知道在这种情况下如何在标签中获取事件信息?
更新:
控制器中调用的事件:
事件PostWasCreated:
侦听器PostWasCreatedNotificationSend:
这个问题$this->queueTags
永远不会被分配,所以在 Horizon 中没有标签用于这个排队的监听器......(虽然显示了队列名称,但我们也需要标签)。
laravel - 未在生产环境中使用 Laravel 和 Mailgun 发送邮件
我正在使用Mailable
withShouldQueue
和Queueable
trait。在我的本地机器上触发邮件时,邮件被发送。但是邮件不会发送,在生产中使用相同的Mailgun 环境。由于我的邮件已排队,因此我尝试同时使用sync
和redis
。在我的本地机器上,这些都可以工作,但同样,在生产环境中也不能。
我已经添加\Log::info("Building mail");
到build()
邮件中的方法。该消息已记录,并且使用Laravel Horizon我检查了该作业是否被解雇。但是,不会向Mailgun发送任何邮件(检查日志,而不仅仅是实际邮件)。我还清除了配置缓存以确保没有错误地缓存任何内容。
这里似乎有什么问题?会不会是某种防火墙问题?日志中没有提供错误,Horizon 也没有提供错误。生产服务器在Laravel Forge上,我在设置服务器时使用了 Chris Fidao 的本指南。