Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用cron管理器_Php_Cron - Fatal编程技术网

在PHP中使用cron管理器

在PHP中使用cron管理器,php,cron,Php,Cron,我想在我的php应用程序中添加一个部分来添加/删除计划任务 类似于他们在vBulletin论坛中使用的内容 有人知道他们用什么吗?他们是在使用cron作业还是做了一些定制的工作 有谁能指导我如何完成类似的事情吗?基本上,我只想让我的脚本添加或删除cron作业/计划任务 例如,我不想使用cPanel Cron接口,我想在脚本中实现这一点 非常感谢您的帮助。 是一个php类,允许您使用类从php访问crontab。我相信vBulletin“伪造”了cron作业。任何访问该页面的用户都会执行代码,检查

我想在我的php应用程序中添加一个部分来添加/删除计划任务

类似于他们在vBulletin论坛中使用的内容

有人知道他们用什么吗?他们是在使用cron作业还是做了一些定制的工作

有谁能指导我如何完成类似的事情吗?基本上,我只想让我的脚本添加或删除cron作业/计划任务

例如,我不想使用cPanel Cron接口,我想在脚本中实现这一点

非常感谢您的帮助。

是一个php类,允许您使用类从php访问crontab。

我相信vBulletin“伪造”了cron作业。任何访问该页面的用户都会执行代码,检查是否需要运行任何任务

但是,如果没有用户访问该网站,则不会执行任何cron作业,该方法100%依赖于页面视图

此外,为了防止在执行cron作业的用户上延迟页面呈现,他们在页面呈现后被执行

同样,这正是我认为正在发生的事情,我自己还没有看过代码


希望这能有所帮助。

如果您没有启用
exec()
功能,您必须依靠通过某些界面手动设置至少一个cron作业,然后在脚本中管理单个作业

例如,我所做的是

  • 我有一个脚本
    heartbeat.php
    ,每分钟执行一次
  • 此脚本检查MySQL表
    crontab
    ,并检查是否有任何带有
    time\u to\u process run()
    的行(作业)使其运行
  • 完成后,类通过
    crontab
    表处理它的重新调度
  • 一个很好的例子是重置某些项目的每日视图。 作业计划在2010年5月1日00:00进行。作业运行后,它会自动为第二天安排时间。

    然后,您可以在PHP中实现失败作业的自动重置和许多其他功能。

    下面是一个PHP crontab类:

    使用这些方法添加、编辑或删除cron作业。

    以下是我的解决方案:-)

    来自命令行的示例:

    bin/cronman --enable /var/www/myproject/.cronfile --user www-data
    

    点击查看更多信息:

    正如链接的帖子所说,cron的行为可能因机器而异。如果您的php脚本以用户“apache”的身份运行,那么您必须确保允许用户使用crontab,这涉及到定位cron.deny和cron.allow文件man crontab'(如果您有shell访问权限)可以告诉您在哪里找到这些文件以及如何解释它们。。。但是,如果您要将代码打包以在未知环境中部署,您可能需要像evolve的回答中那样“伪造”。@grossvogel我使用了这个库php corntab manager,但我得到了内部服务器错误,有没有其他方法可以从php脚本中调用start或stop cron jobs(谢谢:)这几乎就是我所需要的,尽管我不想触碰cron的cPanel界面,但我认为最好的解决方案是做一些类似于您所说的事情;但是,与其先手动创建cron,不如在用户执行对页面的请求时,从网站页面中调用cron-manger脚本。我想我现在肯定vBulletin也不使用cron,因为他们也必须依赖于在我的主机上被禁用的exec(),然而vBulletin仍然可以使用这些调度器的全部功能。即使它100%依赖于页面浏览量,你也可以随时安排cronjob访问网站。。。。。