【问题标题】:Run PHP file at scheduled times?在预定时间运行 PHP 文件?
【发布时间】:2011-12-21 17:27:09
【问题描述】:

我有一个 php 文件,它从外部 API 中提取一些数据,我想安排它每隔几个小时(或每隔几天)执行一次。一些谷歌搜索导致我进入“计划任务”,但似乎我需要运行自己的服务器才能做到这一点?

到目前为止,我所做的所有 PHP 和 MySQL 都是非常简单的表单填写,所以我有点迷茫。我是否需要将计算机变成服务器才能执行此操作,还是应该查看允许您运行脚本的主机?我不确定我在寻找什么。

附带问题:我如何才能阻止其他人运行 PHP 脚本(从而进行大量 API 调用)?

【问题讨论】:

  • stackoverflow.com/questions/120228/…。对于您的附带问题,需要一个秘密查询参数才能运行脚本。
  • 您使用的是什么版本的 Windows,您的机器通常何时开启?
  • 我使用的是 Mac,但我也有 Windows 7 桌面。 mac是笔记本电脑所以变化很大,台式机几乎不用

标签: php scheduled-tasks


【解决方案1】:

您现在如何运行脚本? Windows 还是 Linux? Linux 使用 cron 很简单:在启用 PHP 的服务器上,只需将 PHP 脚本放在某个地方,编辑 crontab 即可!

例如。每 2 小时一次

0 */2 * * * /usr/local/bin/php /path/to/script.php

编辑回复:Mac

launchd 显然是运行计划任务的首选方法,但我知道 OS X 具有 cron 功能以及 UNIX 衍生产品。

【讨论】:

  • 在 Mac 上,在运行 XAMPP(apache、mysql、ftp)时导航到浏览器中的本地文件
  • Mac 运行 BSD,因此可以使用 cronjob。 php 路径可能不同,所以只要找出那一点就可以了。
  • 不要忘记 *nix 中经常被遗忘和孤独的 atbatch 命令。
【解决方案2】:

如果您有一个相当繁忙的网络服务器,您可以简单地每次检查自上次运行脚本以来的时间。如果超过两个小时,请运行它。

只需确保更新时间并自动运行脚本,这样您就不会启动脚本的多个副本。您可以使用包含上次运行脚本的文件来执行此操作,您在检查和更新它时锁定

【讨论】:

    【解决方案3】:

    cronjobs 是为此而设计的...您可以在 cpanel 中查看 Cron Jobs.. 我假设你的网站是在 Linu 环境下启动的

    http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/

    http://man.cx/cron

    你可以找到更多关于后台进程的解释

    http://www.fijiwebdesign.com/blog/create-a-background-process-on-the-server-with-php.html

    【讨论】:

      猜你喜欢
      • 2012-02-02
      • 2014-12-07
      • 2018-12-12
      • 1970-01-01
      • 2018-03-15
      • 2019-04-16
      • 1970-01-01
      • 1970-01-01
      • 2011-12-14
      相关资源
      最近更新 更多