ecshop计划任务有关问题
程序员文章站
2022-05-31 22:46:31
...
ecshop计划任务问题
我自己做了一个自动发送邮件的计划任务插件,我的全站都有计划任务触发代码:,我设置的是每天早上09:00执行,分钟里面添加了所有的分钟(0-60),执行后关闭未选,高级选项未选,这个插件一直处于开启状态。
现在的问题是刷新页面触发程序执行到调用外部发信方法时就会中断(我把外部的方法写进来就不中断),我点后台“计划任务”列表中的“执行”就会完全执行完,怎么可以让程序无视发信方法所处的位置一路执行到底呢?
另外:ignore_user_abort(true)和set_time_limit(0)我都使用了。
------解决方案--------------------
既然是“刷新页面触发程序执行到调用外部发信方法时就会中断”。那就写一个专门发短信的url。
然后通过fsockopen,往里放数据。
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)
\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
我自己做了一个自动发送邮件的计划任务插件,我的全站都有计划任务触发代码:,我设置的是每天早上09:00执行,分钟里面添加了所有的分钟(0-60),执行后关闭未选,高级选项未选,这个插件一直处于开启状态。
现在的问题是刷新页面触发程序执行到调用外部发信方法时就会中断(我把外部的方法写进来就不中断),我点后台“计划任务”列表中的“执行”就会完全执行完,怎么可以让程序无视发信方法所处的位置一路执行到底呢?
另外:ignore_user_abort(true)和set_time_limit(0)我都使用了。
------解决方案--------------------
既然是“刷新页面触发程序执行到调用外部发信方法时就会中断”。那就写一个专门发短信的url。
然后通过fsockopen,往里放数据。
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)
\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
相关文章
相关视频