php cron在指定的时间之后

时间:2011-10-31 09:04:26

标签: php mysql cron crontab

我没有服务器,所以我没有crontab访问权限。我正在考虑使用PHP脚本来检查当前时间和已经过了多少时间。例如,我运行脚本,它将当前日期存储在MySQL中,并检查是否已过了30天。如果是这样,做我的东西。

没有MySQL可以做所有这些吗?当然,这只是我的想法,我还没有尝试过。

5 个答案:

答案 0 :(得分:2)

保持脚本运行

问题是你要么让这个脚本长时间运行(PHP不喜欢),要么你必须每天手动运行该脚本或其他任何东西。 你可以做的一件事是编写一个脚本,在你的本地机器上运行,每分钟或每小时或任何其他时间访问该PHP脚本(例如使用命令行工具'wget')。

如果您想拥有一个长时间运行的脚本,则需要使用:http://php.net/manual/en/function.set-time-limit.php。这将让你执行更长时间的脚本。

如另一个答案所述,还有这样的服务:https://stackoverflow.com/questions/163476/free-alternative-to-webcron

需要MySQL吗?

至于你是否需要MySQL - 绝对不是,但如果你有它可用它并不是一个糟糕的选择。您可以根据需要使用文件(http://php.net/manual/en/function.fopen.php),甚至可以使用基于文件的SQL数据库的SQLite(http://php.net/manual/en/book.sqlite.php)。

答案 1 :(得分:1)

据我所知,你只能运行php脚本,这是由用户请求所涉及的。

我试过一次,但这很危险。如果计划的进程花费的时间太长,用户可能会中断它,并挂起脚本,导致半处理数据。我不是建议它用于生产环境。

答案 2 :(得分:1)

看看Drupals Poormanscron模块:http://drupal.org/project/poormanscron。从介绍文本:

  

该模块在您的每个页面上插入少量JavaScript   网站,当自最后一个cron以来已经过了一定时间   运行,调用AJAX请求来运行cron任务。

你可以自己实现这样的东西,可能使用他们的代码作为起点。但是,此实施取决于对您网站页面的定期访问。如果没有人访问您的网站,则cronjobs不会被执行。

答案 3 :(得分:0)

你需要某种持久存储,但是一个简单的文件应该可以解决问题。试一试,看看你是怎么过的。 :)如果你遇到困难,请回来寻求帮助。以下是一些可以帮助您入门的建议:

答案 4 :(得分:0)

您可以使用webcron(基本上是在给定时间调用脚本的另一台服务器上的cronjob) https://stackoverflow.com/questions/163476/free-alternative-to-webcron