ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
定时任务必须要配置好,才能正常工作的,有以下**3种**方法,你可以选择其中一种. **第1种**,对于使用了宝塔环境的,比较简单,登录宝塔控制面板.如下图设置即可 注意换成你的域名 执行周期也可以你可以设置1分钟,也可以设置为2分钟。 提示:任何宝塔面板都可以设置,不一定是当前服务器的宝塔面板 ~~~ https://x1.php168.com/index.php/index/task/index.html ~~~ [![](https://box.kancloud.cn/7285e82275d2b0c5f8ffc2eefaf82b9f_995x652.png)](https://box.kancloud.cn/7285e82275d2b0c5f8ffc2eefaf82b9f_995x652.png) **第2种,**如果是windows环境的话,就复杂一些. 1.找到你的PHP环境安装目录,把php.exe文件搜索出来.看看他在哪个目录,比如他在这个目录 `D:\phpStudy\php\php-5.5.38\php.exe` 然后你就在D盘根目录创建一个 `task.bat` 文件,里边输入如下内容 ~~~ D:\phpStudy\php\php-5.5.38\php.exe D:\task.php ~~~ 2.再到D盘根目录创建一个task.php文件,里边输入如下内容,其中第二行是做个日志,可以删除掉的 ~~~ <?php file_put_contents(__DIR__.'/task_log.txt', date('Y-m-d H:i:s')."\r\n",FILE_APPEND ); //这一行是日志,可以删除 file_get_contents('https://x1.php168.com/index.php/index/task/index.html'); //把网址换成自己的 echo '执行任务'; ?> ~~~ 两个文件都创建好后,就要配置windows的定时任务了 3.进入控制面板,再进入管理工具,如下图,有三项是需要配置的. **点击可以查看大图** [![](https://box.kancloud.cn/efbddaeca4b180afa07ac78f5e295f25_1662x751.png)](https://box.kancloud.cn/efbddaeca4b180afa07ac78f5e295f25_1662x751.png) [![](https://box.kancloud.cn/879dc841374a7d0887d1adf3e827e70c_666x612.png)](https://box.kancloud.cn/879dc841374a7d0887d1adf3e827e70c_666x612.png) [![](https://box.kancloud.cn/4a6f60205e378e2c106ecd516c97cc47_742x623.png)](https://box.kancloud.cn/4a6f60205e378e2c106ecd516c97cc47_742x623.png) 最后他还会提示你输入管理员的登录密码才能生效的.以后管理员密码改了,也需要重新设置才行. 每一项都按图片的标注设计即可.其它就默认的. 执行时间间隔最好就10分钟吧. **第3种,**对于没有服务器的情况,你就只能配置钩子文件,让网页随用户的访问来刷新定时任务.如果你的网站一天都没人访问的话,那么定时任务可能就会一直不执行.所以有服务器的话,最好不要选择这种.会非常被动.需要有用户访问才会刷新生效。所以起不到真正定时任务的作用。 [![](https://box.kancloud.cn/21ab008d0da2080025599b34545d14be_1469x892.png)](https://box.kancloud.cn/21ab008d0da2080025599b34545d14be_1469x892.png) 启用钩子后,请确认你的网站前台所有页面都包含有下面这段代码 ~~~ <script type="text/javascript"> $.get("/index.php/index/task/index.html",function(res){ if(res.code==0){ layer.msg('你成功执行了一条定时任务!'); } }); </script> ~~~ 启用后,如果找不到这段代码,那估计你的风格布局模板缺少了类似下面这段钩子代码 ~~~ {:hook_listen('layout_body_foot',$userdb,['webdb'=>$webdb,'info'=>$info],true)} ~~~ 默认模板是以下两个,他是有上面这段代码的,你看看你的风格里是否存有,没有的话,就自己加上去.不然其它要用到的钩子也不能生效. `\template\index_style\default\index\pc_layout.htm` `\template\index_style\default\index\pc_layout.htm` 如果你不想用钩子的话,可以直接在布局模板上面加上 ~~~ <script type="text/javascript"> $.get("/index.php/index/task/index.html",function(res){ if(res.code==0){ layer.msg('你成功执行了一条定时任务!'); } }); </script> ~~~ **特别提醒:如果你没服务器,而你朋友有服务器的话,可以按第1条宝塔面板或第2种方法叫他给你加一个进去.也是可以的.**