# 高阶篇七 异步执行循环队列类库以及使用教程 >[danger] 20180415日进行了修改 >增加新功能 >1.采取独立子进程处理循环任务 >2.增加了防止重复验证 >3.提高更便捷的处理启动和停止控制 >4.增加了启动定时和停止任务的时间设置 >使用参见教程 高阶篇七 >PS 此异步非正在的异步,只是变通的方法把任务丢给命令行处理而已 简单的使用教程 ### 第一步 启动workerCommand 详细参见前几节教程 ### 第二步 建立循环处理执行类 >[info] 参见源码 继承CycleWorkBase即可 ~~~ <?php /** * Created by PhpStorm. * User: Mikkle * QQ:776329498 * Date: 2018/4/14 * Time: 11:15 */ namespace app\worker\auto; use mikkle\tp_worker\CycleWorkBase; class CycleHandle extends CycleWorkBase { protected function runCycleHandle($data) { SaveCount::saveArray(); } } ~~~ ### 第三步 启动和停止循环任务 >[info] 启动 静态命令 start ~~~ $data=["name"=>"mikkle"]; return CycleHandle::start( $data ); ~~~ 或者 ~~~ return CycleHandle::start( ); ~~~ >[info] 查看状态 静态命令 status ~~~ return CycleHandle::status( ); ~~~ >[info] 停止 静态命令stop ~~~ return CycleHandle::stop( ); ~~~ #### 设置固定循环执行间隔时间 修改默认的$nextTime时间即可 系统默认是60秒 ~~~ use mikkle\tp_worker\CycleWorkBase; class CycleHandle extends CycleWorkBase { protected $nextTime=120; protected function runCycleHandle($data) { SaveCount::saveArray(); } } ~~~ #### 自定义循环执行间隔时间 >[info] 重写getNextRunTime方法即可 ~~~ protected function getNextRunTime(){ if (time()<strtotime( "02:00") ){ return 15; }elseif(time()<strtotime( "09:55") ){ return 300; }elseif(time()<strtotime( "22:00") ){ return 20; }elseif(time()<strtotime( "23:59") ){ return 15; } return 60; } ~~~ #### 自定义设置自动执行起始时间和结束时间 ~~~ use mikkle\tp_worker\CycleWorkBase; class CycleHandle extends CycleWorkBase { protected $stopTime="2018-04-15"; protected $startTime="2018-04-18 00:00:00"; protected $nextTime=120; protected function runCycleHandle($data) { SaveCount::saveArray(); } } ~~~