0

我有一个处理表单输入的页面。它做一些事情,发送一些电子邮件,并将客户端重定向到另一个页面。事情进展顺利。

我发送电子邮件的问题很慢,如果我必须发送几封电子邮件,响应时间是不可接受的。我想将客户端重定向到结果页面,然后发送电子邮件。不幸的是,redirect()CodeIgniter 中的调用结束了执行。

有没有办法进行 302 重定向并允许脚本继续执行?

清除 302 重定向标头很重要。关闭连接是可以的,但不是必需的。重要的是用户在发送电子邮件之前被重定向,以便不必等待电子邮件发送完成。

4

1 回答 1

2

我认为使用消息队列比让可能的僵尸进程坐在那里更合适。基本上,当执行此操作时,将作业转储到作业队列中,其中包含电子邮件的正文、收件人、主题等。然后设置一个 cron 作业以每两分钟读取一次该队列,例如,然后发送出电子邮件。

您还可以考虑使用类似 Amazon 的 Simple Queue Service (http://aws.amazon.com/sqs/faqs/#What_can_I_do_with_Amazon_SQS) 以及 Simple E-Mail Service 来创建可扩展的解决方案。

于 2012-04-28T11:42:30.437 回答