草庐IT

阻塞队列--LinkedBlockingQueue

全部标签

php - Laravel Artisan::队列不工作

我有一个名为“import:excelfile”的artisan命令签名我想在我的Controller中运行该命令。在我的Controller中一切正常。但是Artisan::queue('import:excelfile')不是从Controller运行的。但它完美地从CLI运行。问题出在哪里?请看我的代码Controller方法代码http://pastebin.com/45dj179Hartisan代码http://pastebin.com/zNCtQKZ0谢谢 最佳答案 尝试以下方法:Artisan::queue('Some

php - Laravel Forge 在同一台服务器上的多个队列

我使用LaravelForge在不同的环境中运行了三个相同的Laravel应用程序。假设这是三个站点:site.com(生产)staging.site.com(暂存)dev.site.com(开发)在生产站点上,我运行LaravelHorizo​​n来监控生产站点的队列。当我在我的dev.site.com上运行密码重置时,由于队列中发生异常,电子邮件没有发送给用户。Illuminate\Database\Eloquent\ModelNotFoundException:Noqueryresultsformodel[App\Models\User].in/home/forge/site.c

php - 使用 PHP 打开 MSMQ 队列

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

php - 我如何让 twilio 调用代理以将他们连接到队列中的调用者?

来自twilio文档和tutorial座席不知道有人在排队,所以这只有在总是有人在排队并且座席只是坐在那里并整天进行现场调用的情况下才有效。目标:当有人来电时,我想将调用连接到座席。如果代理不可用,请将调用者添加到队列中。如果有第二个人或第三个人打来电话,请继续将他们添加到队列中。当代理完成他们的第一个电话并挂断时,让下一个排队的人打电话并实际调用代理的电话与代理通话。我真的是twilio的新手,所以这个twiml很糟糕,我已经知道这行不通,但这是我目前正在尝试的:myqueuecontactagent.php:account->calls->create($_REQUEST['the

PHP 非阻塞 soap 请求

用户在我的网站上注册后,我需要以不阻塞用户的方式发送soap请求。如果soap服务器运行缓慢,我不希望最终用户不得不等待它。有没有一种方法可以发送请求并让我的主要PHP应用程序继续运行而无需等待soap服务器的响应?如果没有,是否有办法在soap请求上设置最大超时,并在请求大于最大超时时处理功能?编辑:理想情况下,我希望通过请求的最大超时来处理这个问题。我有以下内容://ini_set('default_socket_timeout',1);$streamOptions=array('http'=>array('timeout'=>0.01));$streamContext=strea

php - NodeJS 推送队列,由 Laravel worker 使用

我正在尝试使用Node应用程序发送到SQS的消息。所以“推送”Action由服务器A上的NodeApp执行,“监听”Action由服务器B上的LaravelApp执行。我的问题:我不知道如何格式化要使用phpartisanqueue:work的负载。有没有人遇到过这种情况并找到了解决方案?谢谢! 最佳答案 找到了!经过一些测试,我终于设法从队列中读取消息。基本上,有效载荷必须有一个job属性和负责执行工作的类以及一个data属性和实际数据。像这样的东西:varpayload={job:'App\\Jobs\\MyTestJob@ha

php - Laravel 队列作业失败说 Undefined property 但作业在没有队列的情况下运行正常?

我正在处理一个队列作业,它从其他API导入一些数据并存储它们。在我的Controller中,当我说$this->dispatchNow(newImportPatentsJob($numbers,$count,$invention_id,$redisId));时,它工作正常并且流程通过没有失败。但是当我将其更改为dispatch并将作业排队,然后通过队列工作程序运行它时,它失败了。我的工作看起来像:protected$numbers;protected$count;protected$invention_id;protected$redisId;/***Createanewjobinst

php - Laravel 电子邮件队列有效但不发送

我遇到了一个问题,我试图将一条消息排队发送给注册用户,当我运行时一切正常,但队列只是不起作用,有人可以帮我解决这个问题吗?这是注册Controllerprotectedfunctioncreate(array$data){$user=User::create(['name'=>$data['name'],'email'=>$data['email'],'password'=>Hash::make($data['password']),'type'=>$data['type'],]);$email=(string)$data['email'];$job=(newSendEmailJob(

PHP 运行非阻塞系统调用

如何在PHP中运行非阻塞系统调用?系统调用将调用由第二个PHP脚本运行的流服务。所以我的页面会等待这个调用。我对解决方案的两个想法:1:存在非阻塞执行系统调用的native方法/参数2:在一个新的C++程序上运行system(),然后该程序将在9月fork自身并运行实际的php脚本。线程是否有以非阻塞方式执行系统调用的native方法,或者我是否需要绕过这个...我目前有shell_exec('nohupphp/path/to/file.php&')但它仍然有效 最佳答案 来自PHPmanual:Ifaprogramisstarte

php - 如何在不阻塞线程的情况下调用 PHP?

我有2个PHP文件。一个文件是caller.php,另一个是worker.phpcaller.php将在(linux)系统上启动worker.php并且caller.php应该立即结束(而worker.php仍在服务器上工作)worker.php需要很多时间,它会将状态写入数据库或文件。我希望能够在启动“phpworker.php”的浏览器中打开caller.php,关闭浏览器,在5分钟后返回并检查状态..(或者脚本将在完成后发送邮件)-任何想法如何做到这一点? 最佳答案 您可以结束客户端连接并继续处理,全部完成。如果处理花费的时间