问题标签 [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 回答
662 浏览

laravel - Laravel 作业在执行长任务时运行多次

我目前正在尝试将视频转换为多个 .ts 段(用于 HTTP 视频流)。这是一项漫长的任务,所以我在 Laravel 的工作中这样做。

问题是该作业在几分钟后运行多次,因此,视频被多次处理。在这里你可以看到我的 Job 类:

我该如何解决我的问题?

0 投票
1 回答
348 浏览

laravel - 如何在 Laravel 中手动运行 Jobs 表中的项目(用于测试)

我正在尝试测试某些数据是否填充在由作业完成的页面上。在我的测试环境中,队列没有运行。

有没有办法从控制器中的函数手动运行作业?我通过执行以下操作从我的数据库中检索了所有作业:

我想要的是迭代每项工作并自己处理它们。我的测试套件可以等待这些作业被处理。我似乎找不到任何关于此的文档。谢谢!

0 投票
2 回答
1777 浏览

laravel - 如何将 Laravel 作业推送到队列中

我有一个类 XYJob,它由 artisan 命令创建并实现了ShouldQueue类。.env 文件中的 QUEUE_DRIVER=redis。

问题是当我调度作业时,它作为一个简单的 php 函数运行。队列侦听器未运行,但作业作为简单函数运行。

它是 laravel 5.8 应用程序,带有 predis/predis: ^1.1。我试图清除缓存配置。我曾尝试使用作曲家转储自动加载。

Laravel 文档说:

生成的类将实现 ShouldQueue 接口,向 Laravel 指示应将作业推送到队列中以异步运行。

但我的工作肯定在进行。

0 投票
1 回答
509 浏览

laravel - 对于 1gb 或更大的文件,Laravel 存储 put() 或 putFileAs() 到 S3 目录失败

再会!

当文件很大(1gb+)时,我在将文件存储到我们的 S3 时遇到问题。
仅显示这样的主管条目:

这可能与内存限制有关吗?我们使用的是 DigitalOcean 5dollar 套餐。

0 投票
1 回答
512 浏览

laravel - 处理内部包含许多 HTTP 请求的 Laravel 作业,超时尝试失败

我有一个使用 Laravel 5.8 框架构建的 API REST。

我必须从公共 REST API 获取我的应用程序的数据。为此,我必须做很多请求。我做了一个播种机做什么,整个迁移数据过程大约需要 2 分钟(从公共 Api 获取并插入我的应用程序数据库)。

我无法通过 cronjob 运行播种机,因为它不起作用(看起来需要用户执行命令才能工作)。因此,我创建了一个从内核文件调用的作业类,队列配置设置为QUEUE_CONNECTION=database数据库( -配置)。

尽管如此,作业还是失败了,因为执行需要很长时间,所以我的数据没有更新。

我能做些什么成功地批量处理我的工作?

这是我的 kernel.php

我的 ApiPlayerStatisticJob.php

还有我用来构建工作的播种机(通过复制,不包括打印表达式):

最后,静态函数ApiExternal::getTeamPlayerStatistics(int id)执行所有请求以获取数据(如 30 个请求),那么我可以做些什么来在后台处理这项工作(或直接播种器)而不会失败?

0 投票
2 回答
705 浏览

php - 如何从 Laravel 的 cronjob 运行播种机?

我需要运行一个播种机,它需要一些时间来执行(比如五分钟)。但我在我的 crontab 中将其设置为:

而且它不会自行运行。看起来它需要一个用户来执行。那么,我如何在后台运行这个播种机?

我尝试制作一个命令并像内核文件中的任务一样在后台运行(https://laravel.com/docs/5.8/scheduling#scheduling-artisan-commands),但它也不起作用。

0 投票
0 回答
655 浏览

laravel - 如何在 Redis 队列中调度延迟(待处理)作业?

有一种start()方法可以在 10 分钟内延迟作业:

如何在不等待 10 分钟的情况下立即使方法finish()调度声明工作?StopSomethingJob

更新:.env

0 投票
0 回答
235 浏览

php - 如何在作业队列中传递 curl 资源?

如何在作业队列中传递 curl 资源?但现在 curl 不支持队列,不响应

在此处输入代码

我也用过 laravel guzzlehttp

0 投票
2 回答
259 浏览

laravel - 是否有可能确保 Laravel 作业实际上在轮次运行?

我想准确地在轮次执行某些工作,每 30 分钟一次,例如:

Kernel.php,我有这份工作...

...在中crontab,我有这个命令...

显然一切都很好,但是如果我停止服务或重新启动服务器,那么这个指令,无论是 inKernel还是 in Crontab,都是正确的,例如,服务器或服务在“12:29”变得可用,我知道命令会从“分钟到分钟”执行,但是这些指令中的“某些东西”会知道下一次执行“应该”在 12:30 或现在的方式,将在 12:29 之后运行“30 分钟”,因此,12 :59?

虽然看起来无关紧要,但我的系统中有任务,需要在这些“回合时间”执行,因为任务“执行时间”决定了将执行什么。

0 投票
1 回答
853 浏览

php - 更改队列作业中的区域设置

我有一个突变器,可以将模型的主体转换为所需的翻译格式。

但是,一旦他们在排队的工作中,无论我尝试什么,我都无法更改语言环境,即使我传递了一个 Eloquent 集合,它也会将它们更改为默认语言环境。

我尝试了什么:

  1. 在解雇工作之前,将 $locale 和 $eloquentCollection 传递给工作。

    /li>

而在我的工作中,


  1. 在我的收藏中,我尝试放置一个属性:

    /li>

而在我的工作中,

并将突变器更改为:

然而,这也不起作用。constructText()当我在$locale 中登录时- 它也返回默认语言环境。

你有什么办法或解决方法吗?我想到的其他两种可能的解决方法是:

  • 有没有办法防止集合中的 Eloquent 模型发生变异?

  • 有没有办法将雄辩的集合值(包括“文本”)转换为对象(无需连接到实际模型)?所以我可以直接把它交给工作。