PHP Crontab管理器:高效定时任务设置与管理

需积分: 9 0 下载量 24 浏览量 更新于2024-12-18 收藏 3KB ZIP 举报
资源摘要信息:"php-crontab-manager:PHP Crontab管理器" 知识点详细说明: PHP Crontab管理器是一个PHP工具库,它提供了简化Crontab(定时任务)管理的函数和类。开发者可以通过该管理器更加方便地设置和控制定时任务,而不需要直接编辑Crontab配置文件。以下是从标题、描述以及标签中提炼出的详细知识点: 1. Composer安装方法: - Composer是PHP的依赖管理工具,类似于Python的pip、Node.js的npm。 - 使用Composer安装php-crontab-manager,需要在项目的composer.json文件中添加依赖配置项。 - 在composer.json文件的"require"部分添加"php-crontab-manager"库,版本号为"1.0"。 2. 时间设置方法: - onMinute($minute):通过此方法可以设置定时任务执行的分钟。 - onHour($hour):通过此方法可以设置定时任务执行的小时。 - onDayOfMonth($dayOfMonth):通过此方法可以设置定时任务执行的具体日期,例如每月的哪一天。 - onMonth($month):通过此方法可以设置定时任务执行的月份。 - onDayOfWeek($dayOfWeek):通过此方法可以设置定时任务执行的星期几。 - on($timeCode):此方法允许用户通过一个函数设置整个时间代码,要求输入的是一个完整的Crontab时间表达式。 3. 定时任务添加方法: - doJob($job):此方法用于将具体的作业添加到作业数组中。在添加作业之前,应该先配置好时间设置(onMinute、onHour等方法)。$job参数应该包含要执行的命令的绝对路径。执行的命令应当是一个有效的PHP脚本或者可执行命令。 4. PHP Crontab管理器的应用场景: - 适合需要在服务器上定期执行任务的PHP应用。 - 有助于统一管理多个定时任务,使代码更加清晰和易于维护。 - 可以很方便地开启或关闭指定的定时任务。 5. PHP Crontab管理器的使用优势: - 相较于直接操作Crontab配置文件,使用PHP类和方法可以有效防止格式错误,因为这些方法会内置对时间格式的校验。 - 方便在PHP代码中集中处理定时任务的逻辑,利于开发和调试。 - 可以更好地在项目中集成定时任务管理,实现定时任务的动态配置和控制。 6. PHP Crontab管理器与传统Crontab的对比: - 传统Crontab通过在服务器上编辑一个crontab文件来设置定时任务,需要管理员权限,且配置较为复杂,容易出错。 - PHP Crontab管理器则通过编写PHP代码来管理Crontab任务,可以作为应用的一部分进行版本控制和部署。 - 传统Crontab配置不直观,而PHP Crontab管理器通过编程接口提供更直观、易用的配置方式。 以上知识点是对"php-crontab-manager:PHP Crontab管理器"这一主题的详细介绍,涵盖了如何通过Composer安装PHP Crontab管理器、如何使用该库设置定时任务以及它在PHP开发中的应用优势和与传统Crontab的对比等。通过这些信息,开发者可以更加高效地利用该管理器简化定时任务的管理,提高开发效率。
2019-07-19 上传
为什么使用PHP管理crontab 一般在定时任务较少的情况下,使用原生的crontab服务一般不会有什么问题,但当定时任务较多时就会产生如下问题: 文本形式的定时任务可读性很差,在没有任何注释的情况下,新人很难在不读源码的情况下了解定时任务的业务逻辑 在分布式的场景中,定时任务会散落到多台机器上,无法统一管理 定时任务的日志不能集中化管理,对定时任务的运行分析及故障排除比较麻烦 基于以上几点原因,我们迫切的需要一个可以集中化管理的、可配置的定时任务管理器 但自己开发一套分布式的定时任务系统何其复杂,所以作者采用crontab服务做辅助,使用php实现对定时任务的配置管理 使用php管理定时任务有哪些优势 定时任务可以不再是以文本方式的形式存在,可以存储在缓冲、数据库中,甚至你可以开发管理功能,在后台对定时任务进行编辑 定时任务的日志是可配置的,你可以按照业务需求,对日志进行差异化配置 使用方式如下: 编写一个任务管理器,可参考test/simple.php 将上述脚本添加到crontab中,一分钟执行一次 示例: <?php $crontab_config = [  'test_1' => [  'name' => '服务监控1',  'cmd' => 'php -v',  'output' => '/tmp/test.log',  'time' => '* * * * *'  ],  'single_test' => [  'name' => 'php -i',  'cmd' => 'php -i',  'output' => '/tmp/single_script.log',  'time' => [  '* * * * *',  '* * * * *',  ],  ], ];  $crontab_server = new \Jenner\Zebra\Crontab\Crontab($crontab_config); $crontab_server->start(); 工具短小,但很精悍 在分布式场景中,你可以把定时任务写入数据库中进行统一管理,你可以设定哪些定时任务是由哪些机器执行, 然后通过生成文本文件的方式发送到所有机器上,再由这些机器上的phpCrontab读取处理;从而实现分布式场景下的定时任务统一管理。 标签:Zebra
2019-07-19 上传
taskPHP taskPHP基于php开发的定时计划任务框架,利用多进程实现任务的分配和运行,利用内存共享实现进程间通信,支持多线程模式需要安装pthreads扩展(可选),支持linux和windows。有较好的伸缩性、扩展性、健壮稳定性而被多家公司使用,同时也希望开源爱好者一起贡献。   框架概况 框架目录结构: taskPHP 根目录 |-- core 框架系统目录 | |-- lib 框架核心文件目录 | | |-- .... 众多的框架核心类库文件 | |-- guide.php 框架引导文件 | |-- distribute_listen.php 任务派发进程入口 | |-- worker_listen.php 任务执行进程入口 |-- docs 开发文档存放目录 |-- logs 日志目录 |-- tasks 用户任务目录 | |-- demo demo任务 | | |-- Lib demo任务的扩展目录 | | |-- demoTask.php demo任务类文件 | | |-- config.php demo任务配置文件 | | ... 更多任务 | |-- config.php 全局配置文件 |-- main.php 框架入口文件 |-- windows_single.cmd windows快速启动文件 框架说明 linux下子进程执行任务,修改脚本无需重启后台服务立即生效,windows下修改任务脚本后需重启后台脚本 但往系统添加执行不受影响。 框架支持多线程模式,需要安装pthreads扩展(可选)。 使用内存共享实现进程通信,堵塞式消息队列,整个框架的运行无需第三方扩展。 任务派发及具体任务执行不在同个进程[distribute_listen.php]和[worker_listen.php],windows和linux下启用入口文件[main.php],windows下可运行[windows_single.cmd]快速启动。 执行时间语法跟crontab类似,且支持秒设置。 添加任务简单,只需继承Task基类,实现任务入口run方法。 环境要求 php版本>= 5.5 开启shmop 注意事项 由于任务存在派发时间,所以任务运行的时间可能会有1-2秒的误差。 windows下执行任务在循环里,编写任务有问题或调用exit将导致后台脚本停止,linux下无此问题。 建议生产部署在linux下运行多进程模式,因为运行在多线程模式运行一段时间后报错,pthreads has detected that the core\lib\Pthread could not be started, the system lacks the necessary resources or the system-imposed limit would be exceeded in xxx 文档列表 -->数据库类使用教程 支持(Mysql,Mongo,Oracle,Pgsql,Sqlsrv,Sqllite) -->windows下安装php多线程扩展pthreads教程 -->工具类Utils使用说明 -->http请求客户端类Client使用说明 使用说明 时间配置格式说明: * * * * * * * //格式 :秒 分 时 天 月 年 周 10 * * * * * * //表示每一分钟的第10秒运行 /10 * * * * * * //表示每10秒运行 /1 * 15,16 * * * * //表示 每天的15点,16点的每一秒运行 系统命令说明: main.php [start] 启动 可不带参数 main.php close 结束 main.php reload 重新加载任务 main.php delete demo 删除任务 main.php select 查看任务列表 main.php exec demo 运行任务 主要用于任务开发中调试单个任务 全局配置文件规范 标签:taskphp  计划任务