基于PHP的定时任务管理器 Zebra-Crontab

Apache
PHP
跨平台
2015-01-18
呼延平

为什么使用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读取处理;从而实现分布式场景下的定时任务统一管理。

加载中

评论(1)

老衲大海
国产开源作业调度工具TASKCTL已经开源,可关注:https://www.oschina.net/p/taskctl 了解更多。

暂无资讯

暂无问答

专用Cisco路由器的替代品 Zebra

动态、健壮的路由对于 Internet 网络来说极其重要,因此任何一个初涉此领域的网络工程师不仅需要理解路由的概念,而且要有能力在真正的环境下驾驭它。但是,路由领域由高端网络设备供应商(比...

2009/09/30 16:58
382
0
Linux中增加软路由的三种方法

Linux中增加软路由的三种方法   第一种:route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.254 dev eth0/* 增加一条网络172.16.6.0/24 经过172.16.2.254 eth0 *//* -net增加网...

2012/11/22 13:29
1K
0
Zebra_Image,PHP的图形处理轻量工具

Zebra_Image,PHP的图形处理轻量工具,分享使用Zebra_Image的常用方法,有些不懂或写的不好的望指教_(:з」∠)_

2016/07/13 20:26
74
0
Ubuntu10.04 下 quagga(zebra)环境搭建

Quagga是一款功能比较强大的开源路由软件,支持rip,ripng,ospfv2,ospfv3,bgp等协议。目前最新版本为Quagga 0.99.23。安装Quagga的目的是使装有linux(我采用的是Ubuntu10.04LTS)系统的电脑变...

2014/10/24 17:53
190
0
quagga 软路由

安装 quagga yum install quagga 基本配置 vim /etc/quagga/zebra.conf hostname router password router 保存退出,执行 service zebra start 接着进行 telnet 操作 telnet 127.0.0.1 2601 ...

2012/06/24 21:29
339
0
Apache 2.4.x 对比 2.2.x虚拟主机配置不同

Apache 2.4.x 对比 2.2.x 很多配置都不一样。 虚拟主机配置访问权限配置不同: 按照2.2.x的配置方法,会报下面的错误: AH01630: client denied by server configuration: /var/www/html/login...

2018/04/02 12:02
23
0
利用Quagga搭建OSPF动态路由

过程: 安装Centos-7-Minimal 更换阿里云源 wget http://mirrors.aliyun.com/repo/Centos-7.repo #下载阿里云repo文件 cp ./Centos-7.repo /etc/yum.repo.d/Centos-Base.repo #复制阿里云rep...

04/08 22:13
16
0
net-snmp和zebra软件的融合时怎么不需要snmpd.conf配置文件

问题来源:三层交换机开发 需求:在zebra中支持snmp功能时不需要snmpd.conf配置文件 问题解决: 在net-snmp中将解析配置文件的函数找到。 如解析trap的函数: snmpd_parse_config_trapsink(...

2013/04/12 00:00
202
0
如何在Quagga BGP路由器中设置IPv6的BGP对等体和过滤

在本教程中,我们会向你演示如何创建IPv6 BGP对等体并通过BGP通告IPv6前缀。同时我们也将演示如何使用前缀列表和路由映射特性来过滤通告的或者获取到的IPv6前缀。 拓扑 服务供应商A和B希望在...

2015/10/23 10:20
170
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部