问题标签 [laravel-jobs]

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 投票
1 回答
2064 浏览

php - Laravel 跟踪作业链的开始和结束

我按照文档在 Laravel 中创建了一系列部署作业:

https://laravel.com/docs/5.6/queues#job-chaining

从文档(类似于我的代码):

有什么方法可以跟踪工作链是否已经完全开始和完成?

我想有可能总是以一份beforeDeployment工作和一份afterDeployment工作来开始这个链条。由于发生错误时链会中断并且afterDeployment无法到达,因此这似乎是可行的。

对采用这种方法有什么想法,或者有什么更容易做的吗?

我想我的方法可以让我像这样设置一个监听器:

https://laravel.com/docs/5.6/queues#job-events

干杯!

0 投票
0 回答
309 浏览

php - AWS 上的 Laravel 队列工作者找不到工作

我有一个托管在 AWS ec2 实例上的 Laravel(v-5.3.31)(我们称之为 A)。数据库位于另一个 AWS AURORA 实例上(我们称之为 B)。

我已按照所有步骤创建队列。当我通过我的 Laravel 应用程序创建工作时,我可以在Jobs表中看到该工作。但是当我在 A 上使用命令创建队列工作者时,php artisan queue:work --once 它只会返回。它不处理任何工作。

在我的工作中,我正在 AURORA DB (B) 上创建一个新数据库。代码如下 -

一些发现: 1. 如果我从本地系统执行相同的步骤,它就可以工作。2. 如果我从 JOB 中删除数据库创建代码,第 2 行。它有效,意味着数据库创建正在产生问题。

我找不到原因,谁能给点提示...

0 投票
1 回答
1126 浏览

php - Laravel 检查作业是否扩展了某个类

before我知道您可以使用,afterfailing钩子来收听工作事件:

https://laravel.com/docs/5.6/queues#job-events

不过,我只想在这里接某些工作。这些作业是从某个名为AbstractTask. 通常我会简单地执行一个instanceof检查,但这样的事情是行不通的:

有什么方法可以标记这些工作事件将接手的工作?

编辑

似乎我想要的实际工作(这是我自己的工作类)可以在$event->job类似的地方找到:

我很难相信没有更简单的方法来获取实际正在处理的底层作业,所以我也提出了一个 Github 问题:

https://github.com/laravel/framework/issues/25189

0 投票
2 回答
7614 浏览

laravel - 重试 MaxAttemptsExceededException 作业

failed_jobs 我有多个失败的工作。我尝试重新排队 MaxAttemptsExceededException 但总是失败。如何重试那里的工作类型?

注意:每次我通过php artisan queue:retry id命令重新排队作业时,作业都会立即失败。甚至不执行app('log')->info('test');侦听器的第一行代码 ( )。

我的听众:

0 投票
2 回答
8671 浏览

php - Laravel 在队列上创建作业

我在 Laravel 5.7 上遇到了 Jobs 和 QUEUE 的问题,

该作业正在处理但未进入队列,我在数据库中也看不到任何内容 - 但是,我提到的增益是作业发生时没有问题,但范围是在队列中,拜托。

.env

工作

控制器

终端

经过几次尝试,两个表上都没有数据库中的数据。

请问有什么建议吗?

0 投票
0 回答
182 浏览

php - 多个 Laravel App 使用同一个表作业

我正在HTTP使用相同的 Laravel 应用程序并共享相同的 3 台服务器DATABASE,其中第一台服务器实现LoadBalanceusing nginx,基本上具有相同的权重。

该应用程序使用表“作业”上的数据库驱动器在许多作业队列中工作。处理作业 ( php artisan queue:listen) 的唯一服务器是app1.

我想知道我是否可以jobs在其他服务器中进行处理或对此有一些建议,以及是否有人有相同的经验。

0 投票
0 回答
526 浏览

php - 如何使用 laravel 实现/处理自动出价?

我目前正在建立一个具有类似功能的在线拍卖网站,例如Mytokuri.in / Bidderboy.com. 我的网站完成了大约 90%。我面临创建或构建在服务器上处理的自动竞价系统的障碍,因为即使用户已注销或处于休眠状态,也必须进行自动竞价。自动出价将达到给定的阈值限制并自动结束。我想过使用队列来实现它。当我要使用队列时,我觉得应用程序中存在一些困难和问题,我有以下场景

我计划在 laravel 中创建一个作业并在不存在的情况下运行它,并让该作业为给定阈值限制的用户出价。我想知道它是否有效或者是否有更好的解决方案来实施自动出价

0 投票
1 回答
341 浏览

php - 如果修改了 api 结果,如何更新表中的列

我的应用程序:我的应用程序允许用户预测下一个比赛日所有即将到来的足球比赛的比分。我从 API 获取这些数据并将即将推出的游戏存储在我的数据库中。这些即将到来的游戏有一个statusScheduled现在我想每隔几分钟运行一次 cronjob 来检查这些匹配项的状态是否已更改为in_playfinished,如果是这种情况,我想status field在我的数据库中更新我的,以正确匹配来自 api 的状态字段。

如何检查状态是否已更改并在我的数据库中修改正确的匹配项?我有一个match_id可以用于此的存储?

我的代码: updateStatus工作

getMatchesjob(这个job获取api数据并存入数据库)

0 投票
1 回答
484 浏览

laravel - 在 laravel 中标记为已完成的失败作业

我将 Laravel 5.7 与 php 7.3、Apache2、Redis 一起用于 Laravel Horizo​​n。

我遇到了一个问题,如果有任何错误,工作永远不会失败。前任。如果我忘记添加使用 App\Order; 那么理想情况下这应该被标记为失败,但目前它现在这样做了,这会造成很多工作正在执行的混乱。我从一开始就遇到这个问题。

除此之外,即使存在任何其他错误,例如计算错误(除以 0)和数组缺少键等,作业也不会被标记为完成。

0 投票
0 回答
1488 浏览

php - maxAttemptsExceededException : Laravel Jobs 由于最大尝试或超时而失败

我已经检查了之前提出的问题,但没有找到我需要的解决方案。这是问题列表, Laravel 和 Laravel Forge 会返回“MaxAttemptsExceededException:”即使尝试设置为 1异步 Laravel 作业Laravel 作业覆盖其他作业?

我正在尝试在按钮单击事件上使用 Laravel 作业在 FFMPEG 的帮助下转换所有视频(可能以 MB 或 GB 为单位)。

在不使用 Job 的情况下,代码可以正常工作。

这是控制器的代码示例,

而在工作中,手柄是这样的

在函数video_without_watermarkstreaming_without_watermark中,有借助 FFMPEG 转换文件的逻辑。

请让我知道我做错了什么或可能的解决方案。

编辑 失败作业表的日志

Illuminate\Queue\MaxAttemptsExceededException:App\Jobs\FTPConverting 已尝试太多次或运行时间过长。该作业之前可能已超时。在 /var/www/html/screwbox/vendor/laravel/framework/src/Illuminate/Queue/Worker.php:401