【问题标题】:Launch scheduled task from script从脚本启动计划任务
【发布时间】:2009-11-02 14:33:34
【问题描述】:

在 Windows 服务器上,我们有一个偶尔运行的任务,使用“计划任务”来控制它。 (最好不要直接运行它,因为它可能需要以特定用户身份运行,并且计划任务配置具有所有适当的密码)。

我们想通过一个 PHP 脚本来控制它,以便网站的访问者可以请求运行该任务。 PHP可以触发定时任务吗?如果任务已经在运行,包括给出错误或不采取任何行动。

注意:锁定文件等可能不是有用的解决方案,因为任务可能在完成之前失败/崩溃

【问题讨论】:

    标签: windows scheduled-tasks


    【解决方案1】:

    一个简单的方法:让你的任务一直运行,但什么都不做,直到找到某个特定文件,然后删除它并执行它的工作(然后返回等待)。

    您的 PHP(或其他)脚本只需创建该文件 ...

    【讨论】:

    • 当然,while(true) 循环应该在某个地方有一个 Sleep 语句,以便在下次检查文件之前等待。
    • 很好的答案,虽然如果任务崩溃,那么它需要一些东西来重新启动它。这又回到了:重启它的东西如何知道任务是否正在运行?
    【解决方案2】:

    如果您可以控制 PHP 环境,那么您可以使用 shell_exec 和附加参数直接在 PHP 中执行外部应用程序。您还可以在相关任务中使用类似互斥锁的检查来防止多次执行。

    【讨论】:

    • (a) 这如何允许以不同的用户名运行,使用其他用户的 Windows 配置 (b) 这如何检查任务是否已经在运行?
    猜你喜欢
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 2013-10-15
    • 2018-03-25
    相关资源
    最近更新 更多