升级日志

V1.2.0 by 2018-xx-xx

    1)支持Window端,实现全平台编译和安装

    2)简化安装部署流程,提供三个脚本一键安装启动项目(build.sh,agent.sh,server.sh)

    3)更换项目rpc调度框架thrift为Netty和Mina

    4)引入zookeeper,更改心跳检测机制

    5)基于zookeeper,agent实现自动注册

    6)基于zookeeper实现server集群,动态增减server,job自动分配,实现高可用

    7)server端支持单机和集群两种部署方式,对用户来说一个参数决定哪种部署方式

    8)可以自由定义任务的执行身份

    9)server内置tomcat和jetty组件,支持开发者模式,大大减轻运维部署的难度

    10)webssh新增基于privateKey方式的登录

    11)支持上传文件到agent

    12)更强大的任务流调度

    13)支持对外提供api的方式,允许通过接口调度任务

    14)新增一系列的examples调度使用实例

    15)修复一系列已知bug,增强稳定性和可用性

    此版本是里程碑版本,从底层架构到项目实现都进行重新规划,大大提高了可用性和稳定性,建议所有人升级``

V1.1.0 by 2017-04-20

1)新增agent和server代理连接方式

2)新增quartz类型的任务调度

3)新增web终端,实现web终端文件上传,主题更换

4)更改agnet和server心跳检查机制

5)新增流程任务调度

6)增加xss和csrf注入攻击的预防

7)server端增加踢人下线单一登录控制

jobx

一个功能完善真正通用的linux定时任务调度定系统,满足多种场景下各种复杂的定时任务调度,同时集成了linux实时监控,webssh,提供一个方便管理定时任务的平台.

你是否有定时执行任务计划的需求,需要在linux的crontab里一一定义任务?

jobx的出现将彻底的解决上面所有问题.功能如下:

运行环境

Java JDK 1.7 or greater http://www.oracle.com/technetwork/java/javase/overview/index.html

Tomcat server 8.0 or greater https://tomcat.apache.org

Zookeeper http://zookeeper.apache.org/

Redis https://redis.io/

Browser IE10+

安装说明

jobx分为两个jobx-server端和jobx-agent端,jobx-server端即为一个web可视化的中央管理调度平台, jobx-agent为要管理的任务的机器,agent和server都依赖zookeeper,安装部署jobx之前必须先安装和启动zookeeper server和agent必须连接同一个zookeeper,server端依赖redis

编译步骤:

1)下载源码: 
  > git clone https://github.com/jobxhub/jobx.git

2):编译:
  进入deployment
  > cd deployment
    #修改配置信息
    jobx.password=jobx
    jobx.port=1577
    jobx.registry=zookeeper://${zookeeper_host}:2181?bakup=${zookeeper_host1}:2181,${zookeeper_host2}:2181

    #jobx.host=
    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/jobx
    jdbc.username=root
    jdbc.password=${password}

    jobx.cluster=false
    jobx.cached=memcached

    redis.host=${redis.host}
    redis.password=${redis.password}
    redis.port=6379

    memcached.servers=${memcached.servers}
    memcached.protocol=BINARY

    *nix平台执行 sh build.sh
    window平台双击 build.bat

3):启动
    1) agent
        *nix平台:  执行 sh agent.sh
        window平台: 需要进入jobx-agent/target下,解包jobx-agent-${version}.tar.gz 双击bin/startup.bat

    2)  server
        *nix平台:  执行 sh server.sh 8080
        window平台 双击 server.bat

    3)  进入到jobx的管理端,如果agent也启动了,应该可以直接在server的执行器页面看到agent,则添加任务即可...

注意事项:

1):如果自行编译项目的,有可能agent端的脚本执行失败,这时请更改agent/bin下所有的脚本的字符集
   a) vim *.sh
   b) :set ff=unix 保存退出即可

2):如果agent已经成功启动server还是连接不上,请检查agent端口是否开放(如很多云服务器得开放端口才能访问)

3):如果server端用nginx做反向代理,配置如下:

upstream jobx {
     server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name www.jobx.org;
    root /data/www/jobx/;

    location / {
        proxy_pass        http://jobx;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        client_max_body_size  10m;
        client_body_buffer_size 1m;
        proxy_connect_timeout 300;
        proxy_send_timeout    300;
        proxy_read_timeout    300;
        proxy_buffer_size     4k;
        proxy_buffers    4   32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size  64k;
    }

    #这里必须这么配置,否则web终端无法使用
    location  ^~  /terminal.ws {
        proxy_pass http://jobx;
        proxy_redirect    off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

}

常见问题:

 1)创建作业运行身份无法选择?
   由于考虑到权限的问题,当前登录的用户不能随便指定任务的执行身份,需要超级管理员权限的用户(jobx)登录,在设置页面统一设置运行身份,
   多个运行身份用","分割,然后超级管理员在编辑用户,为该用户指定可以执行的身份(可选择多个)
   这样用户在创建任务的时候就可以选择指定身份去执行了

更多问题请加入jobx交流群156429713,欢迎大家加入