问题标签 [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 投票
0 回答
369 浏览

laravel-6 - 在 Laravel 6.0 中发送带有附件和队列的电子邮件的问题

我在发送带有附件的电子邮件时遇到问题。问题是当我将发送电子邮件放入作业并运行它时,它显示如下错误:

不允许序列化“闭包”

任何解决方案?

我的工作文件“SendEmailCovernote.php”

我的控制器

注意:我正在使用库 dompdf 来生成 pdf 文件。

0 投票
1 回答
180 浏览

php - Laravel Job 看不到传递的变量

Laravel 7.2.2

我正在现有工作中使用 Laravel 创建工作。触发第一个作业可以正常工作,一旦触发第二个作业,它就会崩溃并出现以下错误:

Too few arguments to function App\Jobs\CreateAlarm::__construct(), 0 passed in C:\xxx\Dispatchable.php on line 17 and exactly 3 expected in C:\xx\Jobs\CreateAlarm.php:29

意思是我没有通过任何参数,而预期有 3 个参数。我正在使用以下代码来解雇这项工作:

我在作业 CreateAlarm: 中传递了 3 个变量$this->sid$trigger->id并且Measuerment::max('id')

这是 CreateAlarm 的样子:

我添加了每个变量protected $var,然后在 __construct 中构造它。

我找不到我做错了什么以及为什么工作失败

0 投票
1 回答
2121 浏览

php - 在 Laravel 中取消作业

如果我调用以下内容:

这将创建一个延迟 x 分钟的作业。我的工作都是通过redis处理的,有没有办法然后得到这个特定的工作或从队列中删除这个特定的工作?

人们谈论 php artisan 命令然后删除所有作业,这不是我想要的我想要获取有关此作业的某种信息(作业 ID?或队列 ID?Redis ID?)然后存储在数据库中,以便如果玩家然后取消冒险,我可以用它在队列中找到这个工作并删除它,假设它没有运行。

0 投票
2 回答
198 浏览

laravel - Laravel:将类名从控制器传递给作业

我正在尝试将某个类名从控制器传递到作业文件

工作::dispatch($className);

我尝试将其作为字符串传递并将其作为 ClassName::class 传递,但这些方法都不起作用

Job 文件中的代码如下所示:

$jobname 变量是我要传递的类名。我还需要注意,我从控制器传递了不同作业的类名,我的意思是作业处理程序应该通过变量调用另一个作业。

0 投票
1 回答
431 浏览

php - Laravel 作业和队列未按预期工作

我正在创建一个生成视频的应用程序。这是一个非常密集的功能,需要几分钟才能生成。所以我想为此创建一个异步进程。经过一些研究,我读到了 Laravel 中的作业和队列。

但是现在我的工作没有被插入到jobs表格中。我无法找出我做错了什么。

我开始工作的功能:

我的工作

.ENV QUEUE_DRIVER=database

我确实跑了php artisan clear:config,但似乎没有任何帮助。

我尝试的任何方法似乎都不起作用。表jobs保持为空,作业同步执行而不是异步执行。我在这里想念什么?

0 投票
0 回答
656 浏览

php - 在 laravel 中将大型 .TXT 文件导入数据库的最佳方法

我正在努力将 awstats 文件导入数据库。我有大量文件,最大文件大小约为 10MB,大文件中约有 200k 行。文件分为几个部分,其中一个示例如下:

这是一个小数据的小部分。有非常大的部分包含数千行。我在这个项目中使用 Laravel 和 MYSQL,并在表中以 JSON 格式保存部分。这是在数据库中保存文件数据的控制器代码。

该控制器的功能是保存站点,并运行将当前月份文件的数据导入数据库的作业。

此代码适用于小文件,但不适用于大数据。通常我会收到关于 MYSQL 服务器消失的错误,max_allocated_pa​​ckage 类型的错误。

我做了以下改进:

  • 分段保存数据(如将数据分成三部分,然后保存所需数据,然后通过剩余数据更新行)
  • 增加内存大小,执行时间等。

但是我正在寻找一种合适的方法来保存它们,在这些基础上,我必须编写调度程序和一些其他工作,这些工作可以在一个请求中导入许多文件。如果有人对这个问题有好的想法或建议,那就太好了。

谢谢

0 投票
1 回答
1109 浏览

laravel - queue:restart laravel 命令是否必要?

我通过以下步骤在共享主机中实现了 laravel 队列:

1-我每分钟在主机上设置这个 CronJob:

2-我在 kernel.php 上设置了这个命令:

我排队的工作运行良好

我的问题是:完成后是否有必要对“死”队列使用 queue:restart laravel 命令?

0 投票
1 回答
165 浏览

php - 在 Laravel 中 queue:work 和 config/queue.php 传递的参数之间的区别

在 Laravel 中,queue:work 和 config/queue.php 传递的参数有什么区别

两者具有相似的参数,用于为队列中的作业指定超时等参数

那么区别在哪里呢,是不是参数的优先级会不一样呢?

0 投票
4 回答
4690 浏览

laravel - Laravel 队列和作业 - 如何稍后重新运行失败的作业

先感谢您

我的问题很简单

例如,我创建了一项向用户发送电子邮件的工作。但是由于某些语法错误或任何其他异常而失败,因此 laravel 会将此作业视为failed_jobs数据库表中的失败作业,稍后,假设 2 天后我在代码中发现问题并解决了它,现在我想再次重新运行那个失败的工作,以便我的任务可以完成

这样做的方法是什么?

0 投票
1 回答
115 浏览

php - 将数据传递给队列作业给出 404 - 不是其他错误

从我的控制器

月报.php

它给出404,没有其他错误。但是如果我没有传递$report变量,那么它就可以工作。触发404而不是错误的问题应该是什么?dd();

注意:在另一个项目中使用相同的逻辑并且它正在工作,但不是在这里

我的网页.php

我的表单(年月数据来自 JQuery)