咬定青山不放松,立根原在破岩中。千磨万击还坚劲,任尔东西南北风。

《竹石》 郑燮

野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892

报名链接:报名联系方式

thinkphp5使用workerman的定时器定时任务在某一个时间执行

浏览次数:2081

宜宾少儿编程 thinkphp5

1、首先通过 composer 安装workerman,在thinkphp5完全开发手册的扩展-》coposer包-》workerman有详细说明:
在项目根目录执行以下指令composer require topthink/think-worker

2.在项目根目录创建服务启动文件 server.php:

  1. <?php
  2. define('APP_PATH', __DIR__ . '/application/');
  3. define("BIND_MODULE", "server/Worker");
  4. // 加载框架引导文件
  5. require __DIR__ . '/thinkphp/start.php';

3、在application里创建server模块,并在server里创建控制器 Worker.php:

  1. <?php
  2. namespace app\server\controller;
  3. use think\worker\Server;
  4. class Worker extends Server
  5. {
  6. protected $processes=1;
  7. public function onWorkerStart($work)
  8. {
  9. $handle=new Index();
  10. $handle->add_timer();
  11. }
  12. }

4.创建Index.php类.定义一个每秒钟执行一次的定时器,在定时器里增加条件判断,当当前时间等于要执行的时间时,就执行此任务

  1. <?php
  2. namespace app\server\controller;
  3. use Workerman\Lib\Timer;
  4. class Index
  5. {
  6. public function add_timer(){
  7. Timer::add(1, array($this, 'index'), array(), true);
  8. }
  9. public function index(){
  10.      //每天0点执行任务
  11.     if(time()/86400===0){
  12.     echo date("Y-m-d H:i:s");
  13.     }
  14.     //每天8点执行任务
  15.     if(time()/86400===28800){
  16.     echo date("Y-m-d H:i:s");
  17.     }
  18.    }

5、启动服务 php server.php start -d

目录

您必须遵守 署名-非商业性使用-相同方式共享 使用这篇文章

本文链接:http://www.083158.com/article_details/245

转载注明出处:少儿编程-信息学奥赛-宜宾少儿编程-宜宾市野牛网络科技有限公司

野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892

报名链接:报名联系方式

留言条数·0