🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# think-crontab for ThinkPHP5.1.* github地址: https://github.com/xieyongfa123/think-crontab ## 安装 > composer require xieyongfa/think-crontab ## 开始使用 > 创建如下数据表 ``` CREATE TABLE `crontab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '任务名', `class` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '类名', `payload` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL NOT NULL COMMENT '参数', `last_execute_time` datetime(0) NOT NULL COMMENT '上次执行时间', `next_execute_time` datetime(0) NOT NULL COMMENT '下次执行时间', `status` tinyint(2) NOT NULL DEFAULT 1 COMMENT '0禁用 1启用', `interval_sec` int(11) NOT NULL DEFAULT 60 COMMENT '执行间隔 单位秒', `create_time` datetime(0) NOT NULL COMMENT '创建时间', `update_time` datetime(0) NOT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; ``` ## 创建计划任务 > `push_crontab($name, $class, $payload = [], $interval_sec = 60)` `$name` 是任务名 `$class` 是类名 `$payload` 是参数 数组格式 `$interval_sec` 是任务执行周期 默认60秒 ### 创建计划任务例子 ``` $payload = ['name' => 'thinkphp']; push_crontab('test', 'app\\test\\controller\\echo_date', $payload, 60); ``` ## 监听计划并执行,强烈建议配合supervisor使用,保证进程常驻 > php think crontab --sleep=60 --memory=8 sleep参数:间隔多久查询一次 单位秒 memory参数:单个进程消耗内存超过多少M自动退出(配合supervisor可达到自动重启效果,防止内存溢出) ## 开发帮助及交流 如您对本文感兴趣想与我联系交流 您可以 + 邮件至:xieyongfa@ecarde.cn + QQ:2392523899 [点我聊天](http://wpa.qq.com/msgrd?v=3&uin=2392523899&site=qq&menu=yes&from=message&isappinstalled=0) + 微信交流 ![](https://box.kancloud.cn/b74285a950ce81e3cb782f02eb118d59_752x974.jpg =300x389)