前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >elastic-job入门demo

elastic-job入门demo

原创
作者头像
3号攻城狮
发布2018-05-29 19:41:05
2.1K6
发布2018-05-29 19:41:05
举报
文章被收录于专栏:微服务那些事儿

背景

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

代码语言:txt
复制
链接:http://elasticjob.io/index.html

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

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

安装Zookeeper

代码语言:txt
复制
下载地址 http://www.apache.org/dyn/closer.cgi/zookeeper
image.png
image.png

下载任意可用版本即可

代码语言:txt
复制
解压 tar zxvf zookeeper-3.4.12.tar.gz

配置

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

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

image.png
image.png

编辑配置文件

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

代码语言:txt
复制
tickTime=2000  

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

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

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

运行ZooKeeper Server

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

image.png
image.png

停止:./bin/zkServer.sh stop

image.png
image.png

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

创建普通Spring Boot工程

image.png
image.png

导入依赖

代码语言:txt
复制
<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
image.png

创建运行文件

代码语言:txt
复制
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
image.png

运行成功!!!

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 安装Zookeeper
  • 配置
    • 任意目录下创建data,logs文件下
      • 编辑配置文件
        • 运行ZooKeeper Server
        • 创建普通Spring Boot工程
          • 导入依赖
            • 创建运行文件
              • 启动Zookeeper,运行main方法
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档