jjzjj

php - Laravel 队列只运行一个作业

在我的表“jobs”中有5个作业,我在本地主机上使用进程“phpartisanqueue:listen”,然后它运行所有作业并完成。但是当我在服务器上使用这个过程时,它只运行了一次作业(相同的“phpartisanqueue:work”)。我用queue_driver是“数据库”。 最佳答案 更新-Laravel5.5+只需使用:phpartisanqueue:work--once 关于php-Laravel队列只运行一个作业,我们在StackOverflow上找到一个类似的问题:

php - Laravel 通知电子邮件门面队列多个用户

这是我的代码,用于向多个用户发送通知电子邮件$users=User::whereIn('id',$userIds)->get();\Notification::send($users,newDealPublished($deal));它有效,但如果我想那样延迟它$users=User::whereIn('id',$userIds)->get();$when=Carbon::now()->addSecond();\Notification::send($users,newDealPublished($deal))->when($when);错误是FatalThrowableErrorin

php - 如何使异步自调用循环非递归

我正在用PHP编写一个循环遍历数组的函数,然后对其执行异步调用(使用Promise)。问题是,让这个循环发生的唯一方法是让函数异步调用自身。我很快就遇到了100个嵌套函数的问题,我基本上想将其更改为不再发生。functionmyloop($data,$index=0){if(!isset($data[$index])){return;}$currentItem=$data[$index];$currentItem()->then(function()use($data,$index){myloop($data,$index+1);});}对于那些想从实际角度回答这个问题的人(例如:重写

php - 使用 Laravel 的队列发送消息

我想通过电子邮件或短信或推送通知发送消息,我想使用Laravel的队列。假设我有超过10000封电子邮件要通过队列发送。这一行开始队列推送:Queue::push('SendEmail',array('email'=>'me@email.com'));现在我不知道这个队列对ironMQ到底做了什么,意思是我的消息在推送后什么时候开始发送以及ironMQ有什么好处?有什么帮助或想法吗?提前致谢。 最佳答案 外部服务只是管理器,如果你想推迟工作,请使用Queue::later()。 关于ph

PHP 请求 "queueing"

我有以下问题:当执行非常简单的PHP脚本时,例如这个:并同时在多个选项卡中打开它,第一个选项卡在10秒内完成,但是秒等待20秒而不是10秒,所以我猜请求以某种方式“排队”。有什么想法可以让它们并行执行吗?配置如下:LAMP栈,Ubuntu10.1064位;Apache/2.2.14(Unix)DAV/2mod_ssl/2.2.14OpenSSL/0.9.8lPHP/5.3.1mod_apreq2-20090110/2.7.1mod_perl/2.0.4Perl/v5.10.1我已经添加了KeepAliveOnMaxKeepAliveRequests0MaxClients512MaxRe

php - PHP 编码理论 : Need to direct traffic for multiple queues (multiplexing)

我正在为我们的员工整合一个界面,以上传他们需要行业统计信息的产品列表(目前一次手动上传一个)。然后,每个产品都将通过网络服务API提供给我们的统计引擎。我会回复的。Stat引擎将从我的api请求“下一个受害者”。用户上传的每个列表将包含50到1000个产品,并且将是自己的队列。目前,队列/列表可能每天大约添加(和通过完成删除)10-20次。如果成功,几个月后流量可能会增加到每天700-900个列表。我们只是计划采用一种简单的循环方法来在队列之间均匀地引导流量。多路复用器将从ListA中获取最上面的项目,然后是ListB,然后是ListC等等,直到循环回到再次列出A...请记住,可以随时

php - 如何在 laravel 5 中覆盖作业插入失败的数据库连接?

我正在尝试开发一个Multi-Tenancy多数据库应用程序,这基本上意味着每个租户都有自己的数据库、自己的用户、资源等。自然地,当收到请求时,Laravel需要知道要使用哪个数据库连接,所以我编写了一个中间件,它基本上解析请求中的JWT并查找租户ID或用户名,然后简单地连接到租户的数据库。但现在我正在使用队列,我正试图超越laravel5的默认行为,它连接到主数据库并插入失败的作业记录。当我深入研究供应商文件时,我发现了一个FailedJobProvider接口(interface):还有一个实现该接口(interface)的DatabaseFailedJobProvider类:ta

php - 如何执行 laravel 作业(队列)?

开发人员,我有一个问题。我的队列不工作,或者我只是不明白它是如何工作的。我创建了一个应该添加新队列作业的命令。队列的驱动程序是-数据库。执行我的命令后,我在表“工作”中看到了一个新行。之后我尝试执行“phpartisanqueue:work”——但没有任何反应。请帮帮我,我该如何执行这项工作? 最佳答案 Fromthedocumentation:[DaemonQueueListener]queue:workartisan命令包含一个--daemon选项,用于强制队列worker继续处理作业,而无需重新启动框架。与queue:list

php - Laravel Queue - 记住属性(property)状态?

如果作业失败,它将被推回队列。有没有办法在再次处理作业时记住作业类中属性的值?例如:classMailJobextendsJob{public$tries=3;public$status;publicfunction__construct(){$this->status=false;//settofalse}/***Executethejob.*/publicfunctionhandle(){$this->status=true;//Assumejobhasfailed,itwentbacktotheQueue.//statusshouldbetruewhenthisjobstartp

php - 我应该使用排队系统来处理付款吗?

我正在使用Slim连同Stripe'sPHPLibrary在我的申请中处理付款。一切都很好,但是直到最近,我在我的系统中发现了一个令人震惊的错误,我认为这个问题可能比我想象的要严重得多。按照我的逻辑,我会在支付流程的三个独立检查点检查我的(MySQL)数据库中的库存,以确保用户购买的产品数量不会超过可用数量。但是,当多个用户在大约500毫秒内发出请求时,支付系统似乎会同时处理所有这些请求,从而导致一系列问题,包括库存不正确和不平衡、虚假的用户确认成功付款。通过一些尽职调查,我将解决方案缩小为两个选项(尽管我可能卖空了自己):1)使用QueueingSystem据我所知,它将对这些请求进