2016-03-22 1 views
0

私はLaravel 4.2とIronMQ2を使用しています。何らかの理由で、ジョブをランダムに2回送信しています。私のメーラーでは、私が持っている:IronQueueはジョブを2回送信します

Queue::push('[email protected]', ['email' => $email, 'subject' => $subject, 'view' => $view, 'data' => $data, 'attachment' => $attachment]); 

私はそれが正しい$job->delete()コールの上に、私のMailControllerの内側にログインすることで、複数回送信です伝えることができます:あなたが見ることができるように

[2016-03-22 06:08:02] production.INFO: [MAIL LOGGING] Logging for job 6264815783870079319 [] [] - Duplicate 1 
[2016-03-22 06:08:02] production.INFO: [MAIL LOGGING] Logging for job 6264815783870079319 [] [] - Duplicate 1 
[2016-03-22 06:08:03] production.INFO: [MAIL LOGGING] Logging for job 6264815783870079316 [] [] - Duplicate 2 
[2016-03-22 06:08:03] production.INFO: [MAIL LOGGING] Finish job for 6264815783870079319 [] [] - End duplicate 1 
[2016-03-22 06:08:03] production.INFO: [MAIL LOGGING] Logging for job 6264815783870079316 [] [] - Duplicate 3 
[2016-03-22 06:08:03] production.INFO: [MAIL LOGGING] Finish job for 6264815783870079316 [] [] - End duplicate 2 
[2016-03-22 06:08:04] production.INFO: [MAIL LOGGING] Finish job for 6264815783870079316 [] [] - End duplicate 3 
[2016-03-22 06:12:47] production.INFO: [MAIL LOGGING] Logging for job 6264815783870079319 [] [] - Duplicate 1 
[2016-03-22 06:12:48] production.INFO: [MAIL LOGGING] Finish job for 6264815783870079319 [] [] - End duplicate 1 
[2016-03-22 06:48:52] production.INFO: [MAIL LOGGING] Logging for job 6264826778986309904 [] [] - Duplicate 4 
[2016-03-22 06:48:52] production.INFO: [MAIL LOGGING] Logging for job 6264826778986309904 [] [] - Duplicate 4 
[2016-03-22 06:48:52] production.INFO: [MAIL LOGGING] Logging for job 6264826778986309902 [] [] - Duplicate 5 
[2016-03-22 06:48:53] production.INFO: [MAIL LOGGING] Finish job for 6264826778986309902 [] [] - End Duplicate 5 
[2016-03-22 06:48:53] production.INFO: [MAIL LOGGING] Finish job for 6264826778986309904 [] [] - End duplicate 4 
[2016-03-22 07:54:12] production.INFO: [MAIL LOGGING] Logging for job 6264843610963505825 [] [] - Not duplicated 
[2016-03-22 07:54:12] production.INFO: [MAIL LOGGING] Logging for job 6264843142812137221 [] [] - Not duplicated 
[2016-03-22 07:54:12] production.INFO: [MAIL LOGGING] Finish job for 6264843610963505825 [] [] 
[2016-03-22 07:54:13] production.INFO: [MAIL LOGGING] Finish job for 6264843142812137221 [] [] 

、それはすべてのジョブではありません、複製されたものは同じ秒で実行されます。これを防ぐ方法がありますか?それは電子メールが何回も出てしまう原因になっています。

答えて

0

オプションの1つは、IronMQ V3に移行することです。これは、安定性とパフォーマンスの向上により更新されたキューです。

IronMQ V2は、あなたが次の操作を行う必要があるLaravel 4.2にハードコードされているので:composer.jsonで

  • 更新IronMQ版: "鉄-IO/iron_mq": "4. *を";
  • 更新アプリ/設定/ queue.phpでホスト、すなわち mq-aws-us-east-1-1.iron.io代わりmq-aws-us-east-1.iron.iomq-aws-eu-west-1-1.iron.io代わりのmq-aws-eu-west-1.iron.io)の。
  • push_queueを適切なV3クラスタ(us-eastまたはeu-west)に移行します。 vendor\laravel\framework\src\Illuminate\Queueディレクトリで
  • 私が共有するとIronQueue.phpIronJob.phpIronConnector.phpファイルを置き換える:
    https://onedrive.live.com/redir?resid=4DBE0885AEDA52FD!106&authkey=!AIr18HPOvqv6DE4&ithint=file%2czip
+0

おかげで、私はそれを恐れていました。私は、ベンダーディレクトリ内の何かを変更したくないのです。それは、コンポーザーアップデートでこれらのファイルが変更されるたびに、それを追跡する必要があるからです。私たちは最終的にLaravel 5に移動します。そのときまでV3まで移動します。その間に、重複送信を無視するジョブを追跡しています。 – aynber

関連する問題