Laravel 4:如何在发送电子邮件后立即给出反馈?

时间:2014-03-07 10:18:50

标签: php email laravel laravel-4 queue

情况如此:

我有一个laravel应用程序,在预订服务后,它会发送一封电子邮件。 我已经安装了Iron mq以加快这个过程。

在花费8/10秒发送邮件之前,使用Iron mq排队电子邮件需要大约3秒钟。

然而,我想提供即时反馈,这意味着立即显示确认消息。

这是控制器(需要大约3秒钟):

        $input = Input::all();

        $validation = Validator::make($input, Registration::$rules, Registration::$messages);

        if($validation->passes()) 
        {

              $registration->name = $input['name'];
              $registration->email = $input['email'];
               ...
              $registration->save();

              $mailer = new Mailers\MailerRegistration();
              $mailer->mailBooking($registration->name, $registration->email)->deliverRegistration();

              return Redirect::back()->with('message','<b>Congratulations! You have succesfully sent the email');

问题是:

如何修改控制器以立即提供反馈? 我可以在检查验证通过后立即重新定位吗? 但在这种情况下,我最终可以作为RETURN传递什么?

我有点困惑.. 希望你能帮助我!

1 个答案:

答案 0 :(得分:0)

现在你正在使用安全的方式,即:验证,保存模型然后通知,id转到验证通知然后保存模型如果时间很关键,但如果存储模型失败你需要处理它,你选择您首选的方法,您可以重新创建模型或通知用户或做任何来自创造力的事情来处理这种情况。

这种方法背后的原因,每次访问数据库或模型层时都需要一定的延迟,如果你之前通知你在通知之后推迟了延迟