《回访信息系统》---定时任务

描述:

公司小项目,本系统的数据基础是从DMS系统数据库抽取的,且数据量是不断增长的(一月1w条),每条数据的状态也可能发生改变。所以需要使用定时任务解决数据同步的问题。

解决办法一、

百度出来的方法不起作用,把几个方法结合了一下成功了。概括来说,用tp的cli模式;写.bat文件;用windows的任务计划定时执行.bat文件。

具体步骤如下:

1、复制粘贴入口文件index.php,改名cli.php,在cli.php中加一句  define(‘APP_MODE’,'cli');  此时,我们有两个入口文件,一个是web服务访问方式的index.php,另一个是cli模式访问的cli.php

2、修改cli.php中的APP_PATH和THINK_PATH如下:

define( 'APP_PATH', dirname(__FILE__).'/Application/' ); 
require dirname( __FILE__).’/ThinkPHP/ThinkPHP.php';

原文说原来是相对路径,会导致定时执行不能正确引入ThinkPHP.php文件,所以要修改成绝对路径。
3、在路径 /ThinkPHP/Mode 下面有个文件common.php ,复制一份出来,命名为cli.php,然后把里面引入日志类的代码注释或者删除掉:
'Think\Log' => CORE_PATH . ‘Log'.EXT,
4、删除缓存下面的所有缓存——记得是所有

5、新建控制器,命名为CliController.class.php,里面的index方法就写定时任务。

6、新建crontab.txt文件,内容如下:

      d:

      ::进入项目根目录
      cd D:\ZJS\www\huifang

      ::以php执行,注意cli.php后有空格,没有报错      
      D:\php\php7x32\php.exe cli.php /Home/cli
      ::用pause查看报错原因
      pause

最后保存为crontab.bat文件。此时可以手动双击执行,查看结果。

7.控制面板----管理工具----任务计划程序

创建任务:

常规选项卡:起个名,根据实际选配置,这里选的win7和win SR2008

操作选项卡:新建,选择启动程序,程序或脚本选择刚才保存的crontab.bat文件

出发去选项卡:选择制定计划时,然后设置执行频率

--------------------------------------------------------------------------------------------------------------------------------------

以上方法可以实现,数据已经跑进来了。因为不懂原理,不懂什么是cli模式,所以多次进行了尝试,发现以下方式也能实现。

现在清空重来:

  1. 新建控制器,命名为CliController.class.php,里面的index方法就写定时任务。
  2. 新建crontab.txt文件,内容如下:

          d:

          ::进入项目根目录
          cd D:\ZJS\www\huifang

          ::以php执行,注意index.php后有空格,没有报错      
          D:\php\php7x32\php.exe index.php /Home/cli
          ::用pause查看报错原因
          pause

    最后保存为crontab.bat文件。此时可以手动双击执行,查看结果。

  3. windows任务计划程序

就是把前面方法的1,2,3,4步骤去掉一样可行。

暂时不知道其中的弯弯儿。

解决办法二、

最终放弃以上方式,

项目部署服务器为windows服务器,定时任务写在linux服务器上

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值