PHP脚本重新运行自己,直到进程完成.然后每周重新启动
PHP Script to re-run itself until process completed.and then restart every week
我制作了一个从web服务检索XML内容的脚本。这个过程需要每周运行一次,但脚本本身需要重新运行大约180次才能完成这个过程。脚本的每次运行大约需要3-8分钟。我希望它在每次完成后重新运行大约5秒。
我目前的解决方案是:
- windows的任务调度程序每周打开一次php页面
- 当脚本运行并完成时,javascript会在完成后5秒重新启动页面
- 当脚本最后一次运行时,它会删除页面的重新加载,从而停止
这个解决方案的问题是,它每周都会打开一个新的浏览器窗口。有什么好的替代方法可以在不必手动关闭浏览器的情况下做到这一点吗?
重新运行脚本的原因是由于php服务器最大限制的脚本超时设置,以及每次运行后查看状态是否发生任何错误的可能性。
我不使用cron,因为它需要进行大量的民意调查,才能在上次运行后的5秒内启动该过程。对于脚本的每周启动,我认为只要脚本使用javascript重新运行它自己,它就不会工作?
使用PHP:
<?php
// increase the maximum execution time to 43200 seconds (12 hours)
set_time_limit(43200);
function runTask() {
static $cycles = 0;
// do whatever you need to do
// Increments cycle count then compares against limit
if ($cycles++ < 180) {
sleep(5); // wait five seconds
runTask(); // run it again
}
}
runTask(); // fire up the loop
或者,如果你是Javascript的粉丝。。。
使用node.js:
var cycles = 0;
function runTask() {
// do whatever you need to do
// Increments cycle count then compares against limit
if (cycles++ < 180) {
setTimeout(runTask, 5000); // run again in 5000 milliseconds
}
}
runTask(); // fire up the loop
两种解决方案在每次迭代完成5秒后才会再次运行函数。
只需让您的任务运行器直接执行任一脚本;不需要浏览器。
相关文章:
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- Javascript运行php文件,然后下载文件
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 弹出窗口出现,然后退出
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 将值输入到对象,然后该对象推送到数组
- 如何临时暂停浏览器渲染,然后恢复整个页面
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 滚动然后捕捉到顶部而不是取消捕捉
- AngularJS加载JSON数据,然后从中解析/加载HTML
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 点击相同的按钮打开模型,然后提交表单
- ThreeJS将画布中的文本渲染为纹理,然后应用于平面
- 将display属性更改为visible flicks,然后再次消失
- 什么是“;选择“;然后触发事件
- 等待300毫秒,然后使用jQuery向下滑动菜单
- 转到另一个页面,然后立即触发ScrollTo
- PHP脚本重新运行自己,直到进程完成.然后每周重新启动