我不确定您是否已完成订阅队列所需的所有步骤,所以让我们来看看它们:
在文件 app/config/queue.php 中将您的队列配置为默认为 Iron,设置:
'default' => 'iron',
并配置您的连接:
'iron' => array(
'driver' => 'iron',
'project' => 'YOUR PROJECT NUMBER',
'token' => 'YOUR TOKEN',
'queue' => 'YOUR QEUE NAME',
),
为您的队列/接收端点创建一个路由并从 Queue::marshal 方法返回响应:
Route::post('queue', function()
{
Log::info('marshal!');
return Queue::marshal();
});
并测试它!在您的服务器外部使用 curl 或类似的东西访问它:
curl --data "param1=whatever" http://<your.domain.com>/queue
编辑:您可以复制这一整行,然后用您的网址重新制作。
打开文件夹中的日志文件:
app/storage/logs/
你应该在那里看到这样的东西:
[2013-10-10 10:26:09] log.INFO: marshal! [] []
它是由Log::info('marshal!');
我们添加到您的 marshal 路由器生成的。但是您可能还会看到一条错误消息“无效数据。”,忽略它,我们没有进行真正的测试,我们只需要知道您的元帅路线是否有效。
现在您可以在 IronMQ 上为特定队列注册您的 url:
php artisan queue:subscribe <queue name on IronMQ> <url>
一个例子是:
php artisan queue:subscribe johnnyfittizio http://<your.domain.com>/queue
这与您之前在测试中使用的 url 相同。
此命令必须向您显示:
Queue subscriber added: http://<your.domain.com>/queue
如果没有,您必须再次检查您的配置,您可能在那里做错了什么。
然后您可以转到 IronMQ 的队列页面并检查您的队列是否已订阅:
1. Go to https://hud.iron.io/dashboard
2. On your projects, click in tue MQ button of your project
3. Select the "Queues" tab
4. Click on your queue name, this must be the same you subscribed to using the command "artisan queue:subscribe"
5.In the "PUSH INFORMATION" box, check if your queue push type is set to "multicast".
6.Check if your queue is subscribed in the "SUBSCRIBERS" box, it's in the page bottom right area.
如果一切都设置好了,再次触发您的电子邮件(通过队列)并检查日志以查看是否“log.INFO:marshal!” 出现在那里。这次它必须显示但被 IronMQ 调用。
如果是这样并且您没有收到电子邮件,则队列正在工作,您必须检查您的电子邮件配置。