elastic-job入门demo

背景

项目准备使用elastic-job,翻看了一下官方文档.

链接:http://elasticjob.io/index.html

以及在网上找了相关demo,基本上都是复制了官网的简单教程,没有一个明确的demo.

仅做一个完整的简单demo,帮助像我一样的呆萌IT小哥来一个傻瓜式入门.

安装Zookeeper

下载地址 http://www.apache.org/dyn/closer.cgi/zookeeper
image.png

下载任意可用版本即可

解压 tar zxvf zookeeper-3.4.12.tar.gz

配置

任意目录下创建data,logs文件下

为方便管理,在zookeeper-3.4.12文件下创建data,logs文件夹.

image.png

编辑配置文件

在“conf”目录下,新建一个名为“zoo.cfg”的文件,其中内容如下:

tickTime=2000  

dataDir= /Users/pikachu/tool/zookeeper-3.4.12/data

dataLogDir=/Users/pikachu/tool/zookeeper-3.4.12/logs

clientPort=2181
#tickTime: zookeeper中使用的基本时间单位, 毫秒值.
#dataDir: 数据目录. 可以是任意目录.
#dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和#dataDir相同的设置.
#clientPort: 监听client连接的端口号.

运行ZooKeeper Server

执行./bin/zkServer.sh start命令,运行ZooKeeper Server进程,得到如图所示结果,表示后台运行ZooKeeper Server进程成功。

image.png

停止:./bin/zkServer.sh stop

image.png

到此已经能满足我们创建一个elastic-job

创建普通Spring Boot工程

image.png

导入依赖

<dependencies>
        <!-- 引入elastic-job-lite核心模块 -->
        <dependency>
            <groupId>com.dangdang</groupId>
            <artifactId>elastic-job-lite-core</artifactId>
            <version>2.0.5</version>
        </dependency>
        <!-- 使用springframework自定义命名空间时引入 -->
        <dependency>
            <groupId>com.dangdang</groupId>
            <artifactId>elastic-job-lite-spring</artifactId>
            <version>2.0.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.9</version>
        </dependency>
    </dependencies>
image.png

创建运行文件

public class MyElasticJob implements SimpleJob {

    public void execute(ShardingContext context) {
        System.out.println(context.toString());
        switch (context.getShardingItem()) {
            case 0:
                System.out.println("------------->>>>0");
                break;
            case 1:
                System.out.println("------------->>>>1");
                break;
            case 2:
                System.out.println("------------->>>>2");
                break;
           default:
               System.out.println("------------->>>>default");
               break;
        }
    }
    public static void main(String[] args) {
        new JobScheduler(createRegistryCenter(), createJobConfiguration()).init();
    }
    private static CoordinatorRegistryCenter createRegistryCenter() {
        CoordinatorRegistryCenter regCenter = new ZookeeperRegistryCenter(new ZookeeperConfiguration("10.211.108.160:2181", "elastic-job-demo"));
        regCenter.init();
        return regCenter;
    }
    private static LiteJobConfiguration createJobConfiguration() {
        JobCoreConfiguration simpleCoreConfig = JobCoreConfiguration.newBuilder("demoSimpleJob", "0/15 * * * * ?", 10).build();
        // 定义SIMPLE类型配置
        SimpleJobConfiguration simpleJobConfig = new SimpleJobConfiguration(simpleCoreConfig, MyElasticJob.class.getCanonicalName());
        // 定义Lite作业根配置
        LiteJobConfiguration simpleJobRootConfig = LiteJobConfiguration.newBuilder(simpleJobConfig).build();
        return simpleJobRootConfig;
    }
}

启动Zookeeper,运行main方法

image.png

运行成功!!!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

加固你的服务器,防止SSH攻击

Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实...

3022
来自专栏happyJared

基于Docker的Redis高可用集群搭建(redis-sentinel)

  之前介绍了用docker来搭建redis主从环境,但这只是对数据添加了从库备份(主从复制),当主库down掉的时候,从库是不会自动升级为主库的,也就是说,该...

4501
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Pydio托管文件共享服务器

随着云的采用增加,越来越多的数据被远程存储。从音乐到图片再到个人文档,很多人都将文件上传到他们不管理的服务器上。如果您希望将文件保存在您控制的服务器上,则可以使...

3080
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Deployer自动部署Laravel应用程序

Laravel是一个开源的PHP Web框架,旨在使常见的Web开发任务(如身份验证,路由和缓存)变得更加容易。Deployer是一个开源的PHP部署工具,为许...

3081
来自专栏FreeBuf

使用CMSTP绕过AppLocker的方法介绍

CMSTP是一个与Microsoft连接管理器配置文件安装程序关联的二进制文件。它接受INF文件,这些文件可以通过恶意命令武器化,以脚本(SCT)和DLL的形式...

933
来自专栏zcqshine's blog

Nginx+PHP-FPM打开status

3318
来自专栏伪君子的梦呓

下载 Jekyll,并使用它在本地搭建一个博客

1464
来自专栏蓝天

Redis-3.2.9集群配置(redis cluster)

本文参考官方文档而成:http://redis.io/topics/cluster-tutorial。经测试,安装过程也适用于redis-3.2.0。

2732
来自专栏云计算教程系列

如何在服务器上安装LAMP

在本教程中,我们将在Ubuntu上安装LAMP。Ubuntu将满足我们的第一个要求:Linux操作系统。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免...

3962
来自专栏技术支持log

linux操作系统无损升级文件系统ext3至ext4--数据盘篇

linux操作系统无损升级文件系统ext3至ext4: 这里我们以CentOS7.0操作系统来作为示例升级数据盘文件系统: 附: linux操作系统无损升级...

2601

扫码关注云+社区