我如何以编程方式设置 cron 作业,
我们为我们的项目制作了一个安装程序,在安装时我需要使用 PHP 以编程方式设置一个 cron 作业。
请注意,该项目可以在 LINUX/WINDOWS 上运行,
我怎样才能做到这一点?还是有比 CRON JOB 更好的选择。
我正在使用 Codeigniter(始终欢迎基于原生 php 的解决方案,但如果通过 CI 将非常有帮助)
cron 工作包括
- 检查特定表并删除无效数据
- 将值从 mailServer 插入 DB
- 检查某些文件的可用性。
谢谢。
我如何以编程方式设置 cron 作业,
我们为我们的项目制作了一个安装程序,在安装时我需要使用 PHP 以编程方式设置一个 cron 作业。
请注意,该项目可以在 LINUX/WINDOWS 上运行,
我怎样才能做到这一点?还是有比 CRON JOB 更好的选择。
我正在使用 Codeigniter(始终欢迎基于原生 php 的解决方案,但如果通过 CI 将非常有帮助)
cron 工作包括
谢谢。
这是一篇很好的文章,用于从 PHP 管理您的 Cron 作业
http://net.tutsplus.com/tutorials/php/managing-cron-jobs-with-php-2/
此示例包含有关如何从 PHP 编写 Cron 作业的完整描述,该作业可通过带有完整源代码的界面进行管理。
Cron 是一个用于 linux 的作业调度程序。它不能在 Windows 上工作(除非你开始喜欢 Cygwin 和 etecetera)。如果您必须在系统范围内支持它,跨各种未知系统并且全部使用 PHP(无法按原样安排事情),您可以求助于以下三种使用的解决方案中的任何一种:
来自地面控制的电话
(最好的资源,具体时间,最优雅的解决方案)
Random Job Runner
(最容易实现,资源适中)
如果您需要做一些不会直接影响用户在您网站上的行为方式的事情,并且它对时间不敏感(只需要做),您可以求助于以统计概率运行它。
// this will run on average once every 100 page views
if(rand(1, 100)==1) runJobQueue();
最坏
的情况(资源更难)
如果您的工作必须经常完成,因为它会直接影响用户并且它必须满足一些时间安排,您可以保存查询并使用上次运行时间戳更新数据库,并继续检查该工作是否必须重新执行跑
// if has passed 1 hour since last update... re-update it
$result = mysql_query("SELECT `timestamp` FROM job_times WHERE whatever...")
if(mysql_result($result, 2) >= ( now() - 3600)) {
runJobQueue()
cron 作业可用于 linux,Windows 中的替代方案是调度任务。 http://support.microsoft.com/kb/308569