2

キューが IronMQ によって受信されるが起動しないという問題があります。私がこの質問で尋ねるように: https://stackoverflow.com/questions/19200285/laravel4-ironmq-queue-are-not-executed

しかし、新しいドメインをサブスクライブした後、Iron ダッシュボード内で、それがどのリストにも追加されていないことがわかります。おそらく、IronMQ はサブスクライブしているドメインのリストを表示するはずですよね? そして、これがおそらく私のキューが起動しない理由です。どうすれば問題を解決できますか? ありがとう!

4

2 に答える 2

9

キューをサブスクライブするために必要なすべての手順を実行したかどうかわからないので、それらを見てみましょう。

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

編集:この行全体をコピーして、URL を変更するだけです。

次のフォルダにあるログ ファイルを開きます。

app/storage/logs/

そこに次のようなものが表示されるはずです。

[2013-10-10 10:26:09] log.INFO: marshal! [] []

Log::info('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 によって呼び出されています。

送信しても電子メールが届かない場合は、キューが機能しているため、電子メールの構成を確認する必要があります。

于 2013-10-10T13:59:08.630 に答える