请问如何用PHP语言让系统定时执行一个任务?
我想实现这样一个“截止日期”的功能:比如我的网站数据库有一个表格table,它是不断更新的,我想让系统自动在1月31日11:59:59PM时候保存表格的内容,该怎么操作呢...
我想实现这样一个“截止日期”的功能:
比如我的网站数据库有一个表格table,它是不断更新的,我想让系统自动在1月31日11:59:59PM时候保存表格的内容,该怎么操作呢?这个应该是一个很常见的功能,比如某个报名截止时间是本月底,想在月底的时候把这个表格保存。如何保存表格我会,写个php函数就可以了,假设已经有了这个函数,名叫Save_table()。关键我想知道如何定时去调用这个函数。
我的服务器是从Godaddy上面买的linux服务器,不知道要实现这个功能是不是还得跟操作系统权限啥的有关系。
谢谢指导!! 展开
比如我的网站数据库有一个表格table,它是不断更新的,我想让系统自动在1月31日11:59:59PM时候保存表格的内容,该怎么操作呢?这个应该是一个很常见的功能,比如某个报名截止时间是本月底,想在月底的时候把这个表格保存。如何保存表格我会,写个php函数就可以了,假设已经有了这个函数,名叫Save_table()。关键我想知道如何定时去调用这个函数。
我的服务器是从Godaddy上面买的linux服务器,不知道要实现这个功能是不是还得跟操作系统权限啥的有关系。
谢谢指导!! 展开
4个回答
展开全部
如果能使用主机上的计划任务就更好。
如果不能,就通过写一个全局计时器,通过用户访问PHP页面来触发。
这是根据B/S软件模型来决定的,PHP代码一般不会主动执行,只会被动地等待用户访问后执行,所以你可以每次被访问时检查是否到达设定的时间点,如果到了就执行保存事件一次,并把全局的另外一个条件(如将结果保存在磁盘上,下次检查是否有这个文件)设为真,下次就不会再执行。
纯手打,仅提供一个思路~
如果不能,就通过写一个全局计时器,通过用户访问PHP页面来触发。
这是根据B/S软件模型来决定的,PHP代码一般不会主动执行,只会被动地等待用户访问后执行,所以你可以每次被访问时检查是否到达设定的时间点,如果到了就执行保存事件一次,并把全局的另外一个条件(如将结果保存在磁盘上,下次检查是否有这个文件)设为真,下次就不会再执行。
纯手打,仅提供一个思路~
追问
如何写一个全局定时器?我关心的就是定时问题,如何在指定的时间调用我的php函数执行
追答
建议你搜索一下”wp-cron.php“ 看看wordpress是怎么做定时任务的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写好php脚本,然后使用linux的crontab定时执行它
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为啥不做一个shell脚本,在规定时间内触发,在php中写一个函数并且其中与shell做一个对接
追问
我买的godaddy的服务器,我自己应该没办法打开shell窗口运行的吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?php
ignore_user_abort(); // 在后台运行
set_time_limit(0); // 不停地运行
$interval=30; // 设置定时值
do{
//做你要做的事情
sleep($interval); // 等侍
}while(true);
?>
ignore_user_abort(); // 在后台运行
set_time_limit(0); // 不停地运行
$interval=30; // 设置定时值
do{
//做你要做的事情
sleep($interval); // 等侍
}while(true);
?>
更多追问追答
追问
这个貌似不行吧,我怎么才能运行它呢?如果是打开一个网页触发一个函数的话,那么我关闭这个网页之后岂不是就不能运行了?
追答
你这段php独立打开的,打开了会在后台运行,与其它网页无关,在别的网页中打开或是在服务器里用其它文件打开也行,
不过按你这个要求有多个方法可以用计划任务或是Shell什么的都可以,或是写个其它程序也行
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询