执行长查询期间重定向页面

时间:2014-06-11 23:04:07

标签: php

我执行长查询并花费很长时间,  我希望在该过程中重定向到另一个页面,并在我重定向到另一个页面时继续执行我的问题,查询停止执行... 例如:

$emails = array(1, 2, and so on to 100k for example);

我想发送到电子邮件并在发送到另一个页面时重定向,并告诉我发送了多少电子邮件

我尝试搜索问题而无法找到解决方案,或者我用错误的方式搜索

2 个答案:

答案 0 :(得分:1)

你的问题是php是逐行执行的。因此,如果您在流程中间重定向,则其余部分将不会执行。

您可以编写发送电子邮件的scirpt。把它放到一个php文件中。比使用curl打开该文件,请务必添加一个短暂的超时(例如1秒)

要跟踪实际发送的电子邮件,您必须将这些电子邮件插入到数据库中,或创建包含所需数据的文件。即使在发送所有电子邮件之前,您仍需要等待总数。

答案 1 :(得分:0)

实际上,php逐行执行,并且在此过程中你无法重定向,因为这不会继续发送电子邮件的过程

解决问题的最佳方法是使用cron作业,如下所示:

  1. 构建将发送电子邮件的页面

  2. 构建一个每x次执行的新cron作业

  3. 在php代码中,您可以添加一个片段,当您点击发送按钮时,该片段将通过cron作业执行上一个文件

  4. 例如:

    if(isset($_POST)){
    
    //code to make a new file containing sending process
    
    }