问题标签 [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.
laravel - Laravel Horizon - 删除特定作业
我遇到了垃圾邮件发送者攻击 Laravel 网站并发送许多私人消息的不幸事件,我们愚蠢地没有限制您可以 CC 到一条消息中的人数,这意味着一次发送了数千人的消息。
当有人收到 PM 时,会发送一封电子邮件,现在我们的 Laravel Horizon 队列中有数千个作业。我想删除所有这些工作,同时保留其他工作。
QUEUE_CONNECTION
设置为redis
所以它们都存在于redis中。
我在 Laravel 中找不到任何方法来遍历现有的排队作业并删除它们?
需要明确的是,我在队列中有工作,例如:
App\Domain\Auth\Notifications\ActivateAccountNotification
App\Domain\Auth\Notifications\ResetPasswordNotification
App\Domain\Shop\Notifications\PaypalFailureNotification
App\Domain\Graphics\Notifications\GraphicSubmissionStatusNotification
App\Domain\Messages\Notifications\NewMessageNotification
我只想删除:
App\Domain\Messages\Notifications\NewMessageNotification
有没有办法做到这一点?
laravel - 如何在 laravel 中链接 Bus::chain()
我有三个 Laravel Parent 工作名称
他们每个人都用 for 循环调用子作业
现在我正在考虑删除父工作并链接所有子工作总线
laravel - Laradock - PHP Redis 扩展已安装并启用
我正在尝试在 Laradock 上启用 Horizon,但我总是收到此消息“请确保已安装并启用 PHP Redis 扩展” 我已访问 Workspace 容器以检查是否安装了 php-redis 扩展。但是你可以看到图像 php-redis 已经是最新版本 docker-compose exec workspace bash
我已经打开了 Laravel 项目的 .env 并进行了如下更改
我还打开了 Laradock 文件夹中的 .env 文件并启用所有INSTALL_PHPREDIS=true
. 之后,docker-compose build --no-cache workspace php-fpm php-worker
这是Laradock文件夹的 .env 文件
但是 php-redis 扩展仍然是错误的
我找到了一些安装 predis 的答案。但我不想使用它。我想使用phpredis并保存'client' => env('REDIS_CLIENT', 'phpredis')
在 config/database.php
有没有人遇到这个问题,请帮助我。太感谢了
php - Gate 将身份验证模型设置为使用自定义保护时身份验证回调的第二个参数
- 地平线版本:^5.7
- Laravel 版本:^8.18
- PHP 版本:^8.0
- Redis 驱动和版本:predis/phpredis ^1.1
描述:
当我尝试为我的授权逻辑使用自定义保护时,我能够从第二个回调参数而不是第一个参数访问经过身份验证的对象。
重现步骤:
这是正常的行为吗?还是我做错了什么?
laravel - 通过 CRON 在共享主机上运行 Laravel Horizon
我正在 Laravel 8 上运行一个应用程序构建。这个应用程序处理大量的工作。这就是为什么我的队列存储在 Redis 中并由 Laravel Horizon 处理。
由于我在共享主机上,我无法访问 Supervisord(或任何进程管理器)。
我问社区是因为我找不到任何关于我的案例的首选配置的建议或建议。
克朗
* * * * * php artisan schedule:run >/dev/null 2>&1
控制台/内核.php
$schedule->command('horizon')->everyMinute()->withoutOverlapping();
通过 CRON 保持 Horizon 活动的首选方法是什么?
防止 Horizon 重复进程(并防止内存泄漏)的首选方法是什么?
laravel - laravel 地平线上的尝试和重试有什么区别?
在尝试调试一些奇怪MaxAttemptsExceededException
的错误时,我在地平线屏幕上偶然发现了一个奇怪的东西。
对于失败的工作,它显示
这意味着,该作业尝试了 5 次,但从未重试。
这是地平线错误吗?如果不是如何克服这个问题?
我有
我正在使用 laravel 8.30.1 和 Horizon 5.7.0
laravel - Laravel Horizon 作业在分派几个作业后停止分派作业
我运行一个队列,它将分派数千个作业。但是在派遣了一些工作(如 200 个工作)之后,工作停止了派遣。
为什么这些作业停止调度,我该如何运行这些停止的作业?
我在 redis 连接上分派多个名为 SimpleJob 的作业。
- PHP 版本 (7.4)
- 拉拉维尔 8
- Laravel 地平线 5.7
- Redis 服务器 ^5.7
配置/horizon.php
配置/队列.php
配置/数据库.php
php - 如何在 laravel 中设置 Horizon 以减少 CPU 使用率?
我正在使用 laravel Horizon 来监控我的队列。我只有两个队列,我在我的实例上使用 redis 和 supervisor。micro
当我的 ec2 实例是或者nano
我必须使用实例时它不起作用,small
之后我将进程数从 5 减少到 1。现在它正在处理 nano 实例。但由于后台进程只有两个工作,我认为它也应该在微实例上工作。请看看我的horizon.php和supervisor conf文件,如果我能做更多,请告诉我
主管会议
laravel - 使用 redis + Horizon 时 laravel 限速作业如何工作
我目前正在开发一个应用程序,其中许多作业在后台运行,例如发送通知电子邮件。现在我需要对工作进行限速,以防止电子邮件服务提供商指责我们的帐户在几秒钟内发送了太多电子邮件。我的解决方案是使用Redis、spatie job rate-limiter和laravel horizon来管理排队的作业。
这是带有 spatie 作业速率限制器的试用提醒作业的示例处理方法。
这是 Horizon Queue Worker 配置:
和 Redis 配置:
现在,每次我触发trial:reminder
命令php artisan trial:reminder
时,它都会在 app log 上分派作业而不会出现问题worker.log
。但是,在 Horizon 仪表板上有 6 个失败的作业。看看这里的截图地平线仪表板
这是worker.log
应用程序内文件中的结果。
正如您在中间件函数中看到的那样,我希望速率限制器作业能够处理5 jobs every 10 seconds
,以便它可以发送5 emails every 10 seconds
. 有没有人给我一个提示来指导工人发送5 emails every 10 seconds
请在下面评论并提前感谢。
laravel - Laravel 7 通过 AWS SES 发送电子邮件
通过 AWS SES 发送电子邮件时,我遇到了一个非常奇怪的问题。有些电子邮件会发送,有些则不会发送。我所有的电子邮件都作为后台进程运行,当我检查 Horizon 时,它表明作业已执行且没有错误,但我没有收到电子邮件。
在 AWS 上也没有跟踪发送的电子邮件的日志。
所有的电子邮件都在发送,现在只是偶尔发送。
如果我能找出这些电子邮件发生了什么,那就太好了。
任何有关此事的帮助将不胜感激
谢谢丹尼