问题标签 [laravel-queue]
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.
php - Laravel 集成测试工作
我正在尝试为我的应用程序运行集成测试。我有这些工作:
- 开始工作
- 准备工作
- 执行作业
StartJob 调度一个或多个 PrepareJob,每个 PrepareJob 调度一个 PerformJob。
添加这个
使我的测试失败并出现错误提示
删除 $this->expectsJobs 使我的所有测试都通过,但我不能断言给定的作业已运行,只能断言它是否将数据库修改为给定状态。
StartJobs.php
准备工作.php
执行作业.php
JobsTest.php
我认为这与我使用具体调度程序的方式有关,而 $this->expectsJob 模拟了调度程序。可能与此有关 - https://github.com/laravel/lumen-framework/issues/207。有什么办法解决这个问题?
laravel-5 - 在没有命令行侦听器的 Laravel 5 中运行排队作业?
我一直在将作业添加到 Laravel 中的队列中,但它们仅在我被 ssh 连接到服务器并运行以下命令时才运行:
我需要队列不断运行,而不依赖于上面的命令行监听器。队列是通过redis运行的,目前我唯一的配置是:
在我的 .env 文件中:
我觉得我必须有一些配置不正确。
laravel - Laravel,在作业队列中嵌入图像的问题
我在作业队列中嵌入图像有一个奇怪的问题。
我正在使用 WAMP 进行开发。我的项目的文件夹结构是
C:\wamp\MyProject
& 公共目录在
C:\wamp\www\app
当我运行它时这工作正常,但是当我将驱动程序从“同步”更改为“数据库”并更新邮件功能时,如下所示:
当我运行上述程序时,我可以在我的工作表中看到数据条目。但是当我执行命令时: php artisan queue:work
它作为异常抛出
[错误异常]
fopen(assets/images/logo.png):打开流失败:没有这样的文件或目录
如果我删除图像,它会起到魅力的作用。现在我想知道为什么它在不使用作业队列的情况下无法找到图像,它可以找到图像并将其嵌入到邮件中。它应该按需要工作。
对此的任何帮助,将不胜感激。
laravel - Laravel 5.2 在添加新作业之前检查排队的作业
我的目标 - 检查作业是否已在具有指定参数的队列中。假设我为用户 id 1 添加了工作。之后另一个管理员想为用户 id 1 添加相同的工作。如何防止这种情况发生?
laravel-5 - 如何在指定队列运行 Laravel 作业
我有一个工作来向用户发送短信。我想在指定的队列名称上运行此作业。例如,此作业添加到“ SMS ”队列。所以我找到了一种方法来做到这一点,但它存在一些错误。
创建作业实例并使用 onQueue() 函数来执行此操作:
我的工作类是这样的:
所以我输入这个命令来控制台:
但是我在执行此作业时收到此错误消息:
[无效参数异常]
没有为命令 [App\Services\Auth\User\Password\SendGeneratedPasswordResetCode] 注册处理程序
注意:其他方式是将事件添加到 EventServiceProvider 的监听属性并触发事件。但它不适用于指定队列名称。
laravel - 用于多用户环境的 Laravel 队列
我正在使用 Laravel 5.1,我有一个大约需要 2 分钟来处理的任务,这个任务特别是生成报告......
现在,很明显,我不能让用户在我接受用户输入的同一页面上等待 2 分钟,而是我应该在后台处理此任务并稍后通知用户任务完成......
因此,为了实现这一点,Laravel 提供Queues
了在后台运行任务(如果我没理解错的话),现在对于多用户环境,即如果多个用户需要生成报告(比如有 4 个用户),那么命名的特性Queues
,是不是意味着任务会一个接一个地执行(即当4个用户一个接一个地要求生成报告时,那么只有在生成第3个用户的报告时才会生成第4个用户的报告)??
如果Queues
一个接一个地完成他们的任务,那么无论如何,哪些任务会根据用户的要求在后台立即处理,并且用户可以在其任务完成后得到通知?
multithreading - 如何处理 laravel 作业的多个线程?
我正在开发一个 laravel 项目,该项目涉及应用程序的客户通过各种其他 API 将数据导入应用程序。
我正在考虑为需要导入的每种数据制作工作。但是,这意味着许多客户将提出需要由队列工作人员处理的工作,这意味着如果客户提出了一个工作来导入一个正在导入某种数据的工作,如果另一个客户也提出了一个工作要导入同一种数据,他必须等待第一个客户的工作完成,然后第二个客户的工作将由队列工作开始工作。但是我们不能让 100 个客户互相等待。
那么这种进口的可行解决方案是什么?我应该将作业放在散列队列上,然后调用这些队列吗?或者有没有更好的方法来处理这个问题。有没有人使用过这样的应用程序,其中数据是由客户从各种 API 异步导入的。以及如何最好地处理它。
laravel - laravel 推送来自不同代码库的排队作业
我正在尝试从其他代码库触发作业
MyCommand 类:
和 MyJob 类:
我正在使用 queue:listen 命令来监听我的队列
如果我运行命令(在一些代码库中)命令:我得到这样的有效负载,任何处理成功。
现在我的问题是我需要从其他代码库触发此作业或命令有什么办法吗?
我没有(commands/workers 项目)的域名,否则我可以尝试创建一条将触发命令的路由。
php - php artisan queue:工作不适用于 mongodb 和 laravel 5.2
我已经安装了 laravel 5.2.0 和https://github.com/jenssegers/laravel-mongodb,并且想通过队列发送电子邮件。我已经成功创建了作业表,但是在运行php artisan queue:work命令时,它会引发以下错误 -
PHP 致命错误:在第 576 行的 /var/www/html/admin/setupl/vendor/laravel/framework/src/Illuminate/Database/Connection.php 中的 null 上调用成员函数 beginTransaction()
我花了很多时间来解决它,但仍然没有工作。任何帮助将不胜感激,非常感谢。
编辑-正如建议的“MongoDB没有事务,所以当Laravel尝试开始一个异常时抛出异常”在这里https://github.com/jenssegers/laravel-mongodb/pull/871,我在beginTransaction和commit中评论了代码() 并返回 null,现在错误已经消失但命令仍然不起作用。
和
php - 是否可以在 Laravel 的事件监听器中使用队列?
是否可以在 Laravel 的事件监听器中使用队列?
假设我有一个控制器QuotesController
,我从那里触发QuoteCreated
具有SendNotification
侦听器的事件。我想调度一个EmailToUser
从该侦听器命名的队列。
当然,我可以直接从 Controller 调度队列,但我可以从侦听器调度它吗?