问题标签 [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.
laravel - Laravel 作业在执行长任务时运行多次
我目前正在尝试将视频转换为多个 .ts 段(用于 HTTP 视频流)。这是一项漫长的任务,所以我在 Laravel 的工作中这样做。
问题是该作业在几分钟后运行多次,因此,视频被多次处理。在这里你可以看到我的 Job 类:
我该如何解决我的问题?
laravel - 如何在 Laravel 中手动运行 Jobs 表中的项目(用于测试)
我正在尝试测试某些数据是否填充在由作业完成的页面上。在我的测试环境中,队列没有运行。
有没有办法从控制器中的函数手动运行作业?我通过执行以下操作从我的数据库中检索了所有作业:
我想要的是迭代每项工作并自己处理它们。我的测试套件可以等待这些作业被处理。我似乎找不到任何关于此的文档。谢谢!
laravel - 如何将 Laravel 作业推送到队列中
我有一个类 XYJob,它由 artisan 命令创建并实现了ShouldQueue类。.env 文件中的 QUEUE_DRIVER=redis。
问题是当我调度作业时,它作为一个简单的 php 函数运行。队列侦听器未运行,但作业作为简单函数运行。
它是 laravel 5.8 应用程序,带有 predis/predis: ^1.1。我试图清除缓存和配置。我曾尝试使用作曲家转储自动加载。
Laravel 文档说:
生成的类将实现 ShouldQueue 接口,向 Laravel 指示应将作业推送到队列中以异步运行。
但我的工作肯定在进行。
laravel - 对于 1gb 或更大的文件,Laravel 存储 put() 或 putFileAs() 到 S3 目录失败
再会!
当文件很大(1gb+)时,我在将文件存储到我们的 S3 时遇到问题。
仅显示这样的主管条目:
这可能与内存限制有关吗?我们使用的是 DigitalOcean 5dollar 套餐。
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 个请求),那么我可以做些什么来在后台处理这项工作(或直接播种器)而不会失败?
php - 如何从 Laravel 的 cronjob 运行播种机?
我需要运行一个播种机,它需要一些时间来执行(比如五分钟)。但我在我的 crontab 中将其设置为:
而且它不会自行运行。看起来它需要一个用户来执行。那么,我如何在后台运行这个播种机?
我尝试制作一个命令并像内核文件中的任务一样在后台运行(https://laravel.com/docs/5.8/scheduling#scheduling-artisan-commands),但它也不起作用。
laravel - 如何在 Redis 队列中调度延迟(待处理)作业?
有一种start()
方法可以在 10 分钟内延迟作业:
如何在不等待 10 分钟的情况下立即使方法finish()
调度声明工作?StopSomethingJob
更新:.env
php - 如何在作业队列中传递 curl 资源?
如何在作业队列中传递 curl 资源?但现在 curl 不支持队列,不响应
在此处输入代码
我也用过 laravel guzzlehttp
laravel - 是否有可能确保 Laravel 作业实际上在轮次运行?
我想准确地在轮次执行某些工作,每 30 分钟一次,例如:
在Kernel.php
,我有这份工作...
...在中crontab
,我有这个命令...
显然一切都很好,但是如果我停止服务或重新启动服务器,那么这个指令,无论是 inKernel
还是 in Crontab
,都是正确的,例如,服务器或服务在“12:29”变得可用,我知道命令会从“分钟到分钟”执行,但是这些指令中的“某些东西”会知道下一次执行“应该”在 12:30 或现在的方式,将在 12:29 之后运行“30 分钟”,因此,12 :59?
虽然看起来无关紧要,但我的系统中有任务,需要在这些“回合时间”执行,因为任务“执行时间”决定了将执行什么。
php - 更改队列作业中的区域设置
我有一个突变器,可以将模型的主体转换为所需的翻译格式。
但是,一旦他们在排队的工作中,无论我尝试什么,我都无法更改语言环境,即使我传递了一个 Eloquent 集合,它也会将它们更改为默认语言环境。
我尝试了什么:
在解雇工作之前,将 $locale 和 $eloquentCollection 传递给工作。
/li>
而在我的工作中,
在我的收藏中,我尝试放置一个属性:
/li>
而在我的工作中,
并将突变器更改为:
然而,这也不起作用。constructText()
当我在$locale 中登录时- 它也返回默认语言环境。
你有什么办法或解决方法吗?我想到的其他两种可能的解决方法是:
有没有办法防止集合中的 Eloquent 模型发生变异?
有没有办法将雄辩的集合值(包括“文本”)转换为对象(无需连接到实际模型)?所以我可以直接把它交给工作。