【php队列任务的实现的问题请教高手!】教程文章相关的互联网学习教程文章

PHP中的编码理论:需要为多个队列引导流量(多路复用)

我正在为我们的员工整理一个界面,上传他们需要行业统计数据的产品列表(目前一次手动执行一个).然后,每个产品将通过webservice api提供给我们的stat引擎.我会回复. Stat的引擎将从我的api请求“下一个受害者”. 用户上传的每个列表将包含50到1000个产品,并且将成为自己的队列.目前,队列/列表可能每天增加10-20次(并通过完成删除)aprox.如果成功,流量可能会在几个月后升级到每天700-900个列表. 我们计划采用简单的循环方法,将流量均匀...

php – 在Laravel 4中删除工作人员之外的队列作业?【代码】

我理解监听器将Job实例传递给我的worker,我可以使用该实例删除该作业,但是如何删除worker之外的作业?考虑这种情况:$job_id=Queue::push('DoTheJob', array('data'=>array(1,2,3)));If(!someotherjobdone){ // delete job from Queue with job_id ? }谢谢解决方法:我不确定这是否正确,但我想你想把这个工作从队列中“弹出”:$job_id=Queue::push('DoTheJob', array('data'=>array(1,2,3)));If(!someotherjobdone){Queue::pop($j...

php – 使用多个队列的Laravel5和GAE【代码】

我正在Google App Engine上运行Laravel 5.1项目. 为了加快这个过程,我找到了一个提供GAE和Laravel5实现之间接口的包. (https://github.com/shpasser/GaeSupportL5) 现在,我想以不同的方式处理某些类型的工作.不同的重新尝试或故障处理.此外,我不希望某种类型的工作只是坐在队列中干扰他人. 为此,我的猜测是使用多个队列.在shpasser包的实现中,似乎只能使用一个队列连接.但GAE和Laravel 5的文档都支持多个队列. 我该怎么做呢?解决方...

php – 如何在laravel中收听所有队列?【代码】

laravel 5.4 redis 如果我使用php artisan queue:listen,它将监听默认队列.如果我通过php artisan queue指定队列:listen –queue athen只有队列a才会监听.如果队列很多,有没有在laravel 5.4中监听所有队列?解决方法:我担心你不能指定所有可用的队列而不指定哪些队列;但是,您可以对多个队列使用–queue参数,例如:php artisan queue:listen --queue a,b,c

php – Laravel Forge在同一台服务器上的多个队列【代码】

我有三个相同的Laravel应用程序在运行但使用Laravel Forge在不同的环境中运行. 让我们说这三个网站: > site.com(制作)> staging.site.com(升级)> dev.site.com(开发) 在生产站点上,我运行Laravel Horizo??n来监控生产站点的队列. 当我在dev.site.com上运行密码重置时,由于队列中发生异常,因此电子邮件不会发送给用户.Illuminate\Database\Eloquent\ModelNotFoundException: No query resultsfor model [App\Models\User]. in/home...

使用PHP打开MSMQ队列【代码】

我有一个示例PHP脚本连接到Windows上的MSMQ.我可以创建队列并向队列发送消息,但是当我尝试打开队列来读取消息时,我不断获得访问被拒绝的异常.代码在这里:http://pastebin.com/S5uCiP2Z 我认为主要的问题是$READ = $MSMQInfo->Open(2,0);因为我不确定2,0选项代表什么(我无法找到任何地方的参考 – 我从另一个例子中获得了该代码.)在http://msdn.microsoft.com/en-us/library/windows/desktop/ms707027%28v=vs.85%29.aspx查看MSMQQu...

php – 如何让twilio调用代理将它们连接到队列中的调用者?【代码】

从twilio文档和tutorial中,代理人不知道有人在队列中,所以这只有在队列中总有人和代理人坐在那里并整天拨打电话时才有效. 目的: 当有人打电话时,我想将呼叫连接到座席.如果代理不可用,请将调用方添加到队列中.如果第二个或第三个人打电话,请继续将它们添加到队列中.当座席完成第一次通话并挂机时,让下一个在线呼叫并实际响铃代理的电话与座席通话. 我真的很喜欢twilio所以这个twiml很糟糕我已经知道这不起作用,但这是我到目前为止...

php – 工匠队列有什么区别:工作和工匠视界:工作?【代码】

我正在使用Laravel队列和Redis与Horizo??n.主管正在运行工匠视界,这反过来会产生进程/usr/bin/php7.2工匠视野:工作redis 是否需要运行队列:完全工作或者Horizo??n是否已经自己处理队列?解决方法:安装Horizo??n后,Artisan队列:work和horizo??n:工作命令执行相同的任务,但视野除外:工作接受用于与Horizo??n主管协调的参数. 在运行Horizo??n管理程序进程时(通过工匠视野),我们永远不需要执行视野:手动工作. horizo??n:work命令...

php – Laravel邮件不通过队列发送【代码】

我只是在我的服务器上设置了beanstalkd / supervisor配置.队列正在运行,但当我尝试结合使用Laravel的邮件功能时,电子邮件不会发送. 我使用gmail发送邮件,这在我的其他普通代码中使用Mail :: send时不是问题.我尝试通过队列时似乎只发送它. 路线:Route::get('/', function() {$test = "my name";Queue::push('DuplicateAccount', $test); });类:class DuplicateAccount {public static function fire($job, $data) {self::send($...

php – 亚马逊简单队列服务(SQS)【代码】

我在SQS中创建了一个队列,添加了两条消息(序列化的PHP数组:array(‘filename’=> 0,…)和array(‘filename’=> 1,…)).我从他们的git repo使用最新版本的amazon SDK for PHP. 问题是当我使用带有以下选项的receive_message函数时:MaxNumberOfMessages = 10 VisibilityTimeout = 0 // other values doesn't change much我只收到第一条消息,重复10次:<ReceiveMessageResponse> ? <ReceiveMessageResult> ? <Message> <MessageId>8...

适用于Java,PHP和Python的开源队列

我目前正在市场上为我们系统中的工作建立一个新的队列系统.我尝试过beanstalk,但它无法跟上负载.我正在寻找一个简单的系统来启动和运行,我可以从生产者那里放入数据,让消费者使用Java,PHP和Python来提取数据并进行处理. 理想情况下,我希望看到以下功能: 工作验证 – >只有当我将它们标记为已完成时才会从队列中删除作业(如果失败,我不必将作业重新放入) 优先事项 – >优先考虑工作的能力 多个频道 – >能够拥有一个可以使用单独的...

php – Laravel中的异步队列【代码】

我正在尝试实现队列,但结果不是异步我已经应用了以下内容config/queue.php 'default' => env('QUEUE_DRIVER', 'database'),'connections' => ['sync' => ['driver' => 'sync',],'database' => ['driver' => 'database','table' => 'jobs','queue' => 'default','expire' => 60,],] 然后应用以下命令 php工匠队列:表 php工匠迁移 然后跑php artisan queue:listen这是功能SomethingController.php$model1 = new \App\Model1; ...

php – 查询Laravel队列的大小【代码】

我打算使用Laravel Queue,现在我正在做一些研究: 是否可以获得Laravel队列的大小?更好的是,我能获得一些Laravel队列的统计数据吗?解决方法: Queue::size($queue);size method将返回给定队列的大小. Queue :: size()将返回默认队列的大小. 如果您使用的是redis,则可以使用Laravel Horizon获取有关队列中发生情况的更详细信息.

php – ElasticSearch查询在laravel作业队列中挂起【代码】

我目前正在使用laravel-elasticsearch提供程序进行ES查询.我在我的laravel队列(使用beanstalkd)处理的作业中使用它.我遇到的问题是,在长时间运行的作业中,最终我无法再将数据插入到elasticsearch中.工作刚刚挂起(没有异常被抛出)我已经缩小到我正在进行ES调用的代码.我的连接是否可能变得陈旧,如何重新连接?我的另一个想法是它与使用Facade有关,它是一个单身人士. 这是我正在做的,这不是我的确切代码.但是当代码没有在长时间运行的...

Beanstalkd消息队列 -- php类Pheanstalk使用【代码】【图】

业务场景 商城订单生成30分钟后 如果未支付关闭订单 解决办法 可以使用延迟消息队列 这里我们用的是beanstalkd Beanstalkd介绍 Beanstalk,一个高性能、轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟。 Beanstalkd特性 1、支持优先级(支持任务插队)2、延迟(实现定时任务)3、持久化(定时把内存中的数据刷到binlog日志)4、预留(把任务设置成预留,消费...