【发布时间】:2014-11-05 08:56:11
【问题描述】:
我制作了一个从 Web 服务检索 XML 内容的脚本。该过程需要每周运行一次,但脚本本身需要重新运行大约 180 次才能完成该过程。脚本的每次运行大约需要 3-8 分钟。我希望它在每次完成后重新运行大约 5 秒。
我目前的解决方案是:
- Windows 的任务计划程序每周打开一次 php 页面。
- 当脚本运行并完成时,javascript 使页面在完成后 5 秒重新启动。
- 当脚本最后一次运行时,它会删除页面的重新加载,从而停止。
这个解决方案的问题是它每周都会打开一个新的浏览器窗口。有没有什么好的替代方法可以做到这一点而不必手动关闭浏览器?
脚本重新运行的原因是由于php服务器最大限制的脚本超时设置,以及每次运行后查看状态是否发生错误的可能性。
我没有使用 cron,因为它需要进行非常多的轮询才能让进程在上次运行的 5 秒内启动。对于脚本的每周启动,我假设只要脚本使用 javascript 重新运行自己,它就不会工作?
【问题讨论】:
-
我确信有一个更好的解决方案,它不需要打开浏览器来运行 javascript。为什么需要 javascript 而不是在 php 中调用一个函数 180 次?
-
@wolfemm 好问题。我实际上在 PHP 中做了一些模糊相似的事情 - 一个脚本必须运行多次才能完成一项任务(糟糕的设计但解决方案就足够了,再多的东西都会是矫枉过正),我最终做的只是分叉直到有没有更多的工作要做。我不需要浏览器,虽然我只是从命令行调用脚本并且它负责分叉本身。当然应该注意不要炸毁机器,但跟踪状态并不是那么糟糕。
标签: javascript php web-services cron automatic-updates