我需要发送简讯。我已经有一个发送大量电子邮件的PHP脚本,但由于PHP max脚本运行时间,因为电子邮件数据库不断增长,它将无法正常工作。
所以,为了避免这种情况,我想出了一个解决方案:我会在javascript中使用AJAX调用我的PHP脚本,并且我会给它$ _GET参数一个计数20,所以脚本只会发送20封电子邮件。比AJAX会收到成功响应,并一次又一次地调用我的脚本,直到发送所有电子邮件。
有可能吗?我问,因为我从来没有见过这样的解决方案,所以我想知道它是否真实(这有点难以实现我的PHP框架,所以我先问这里的专家)
总结一下这是一个代码框架:
<script>
var emailCount = 1000; //would get this from DB
var runCount = 20; //number of emails sent in one cycle
var from = 0; //start number
function sendMail(){
if(from<emailCount){
jQuery.ajaxfunction({
path: 'script.php?from='+from+'&count='+runCount
successFc: function(){
from+=runCount;
sendMail();
}
})
}
}
sendMail();
</script>
那么,有什么障碍吗?非常感谢。
答案 0 :(得分:3)
当然您可以使用AJAX 来实现,但在这种情况下,您还应确保error
参数也已定义 .ajax()
jQuery (see documentation)中的函数。即使前一个调用返回了一些错误(例如PHP脚本中的错误或其他错误),它也会确保调用脚本。
另一个想法是使用 CRON作业,它会以恒定的间隔调用您的脚本,您不需要浏览器一直运行。 See more about Cron。如果您需要Windows解决方案(Cron是基于Unix的),您可以使用例如Cron for Windows。
答案 1 :(得分:1)
是的,这将有效。但您也可以使用PHP set_time_limit
函数,但有些主机更喜欢阻止它。
答案 2 :(得分:1)
您可以使用set_time_limit(0)
让脚本运行所需的时间。