当前位置:主页 > java教程 > Java Elastic-Job

Java Elastic-Job分布式定时任务使用方法介绍

发布:2023-03-12 08:00:01 59


为找教程的网友们整理了相关的编程文章,网友许玟丽根据主题投稿了本篇教程内容,涉及到Java、Elastic-Job、Java分布式定时任务、Java Elastic-Job相关内容,已被863网友关注,内容中涉及的知识点可以在下方直接下载获取。

Java Elastic-Job

1 事件追踪

Elastic-Job-Lite在配置中提供了JobEventConfiguration,支持数据库方式配置,会在数据库中自动创建JOB_EXECUTION_LOG和JOB_STATUS_TRACE_LOG两张表以及若干索引,来记录作业的相关信息。

1.1 修改Elastic-Job配置类

在ElasticJobConfig中修改:

    @Autowired
    private DataSource dataSource;
    /**
     * 任务启动
     *
     * @return
     */
    @Bean(initMethod = "init")
    public SpringJobScheduler initSimpleElasticJob() {
        SimpleJob job1 = fileBackupJobDb;
//        // 定义Lite作业根配置
        JobEventConfiguration jobEventConfig = new JobEventRdbConfiguration(dataSource);// 增加任务事件追踪配置
        SpringJobScheduler jobScheduler = new SpringJobScheduler(job1,registryCenter,
                createJobConfiguration(job1.getClass(),"0/10 * * * * ?",4,"0=text,1=image,2=radio,3=vedio"),
                        jobEventConfig);
        return jobScheduler;
    }

1.2 启动项目

启动后会发现在elastic_job_demo数据库中新增以下两个表。

job_execution_log:

job_status_trace_log:

JOB_EXECUTION_LOG记录每次作业的执行历史。分为两个步骤:

1. 作业开始执行时向数据库插入数据,除failure_cause和complete_time外的其他字段均不为空。

2. 作业完成执行时向数据库更新数据,更新is_success, complete_time和failure_cause(如果作业执行失败)。

JOB_STATUS_TRACE_LOG记录作业状态变更痕迹表。可通过每次作业运行的task_id查询作业状态变化的生命周期和运行轨迹。

2 运维

elastic-job中提供了一个elastic-job-lite-console控制台

设计理念

  • 本控制台和Elastic Job并无直接关系,是通过读取Elastic Job的注册中心数据展现作业状态,或更新注册中心数据修改全局配置。
  • 控制台只能控制作业本身是否运行,但不能控制作业进程的启停,因为控制台和作业本身服务器是完全分布式的,控制台并不能控制作业服务器。

主要功能

  • 查看作业以及服务器状态
  • 快捷的修改以及删除作业设置
  • 启用和禁用作业
  • 跨注册中心查看作业
  • 查看作业运行轨迹和运行状态

不支持项

1. 添加作业。因为作业都是在首次运行时自动添加,使用控制台添加作业并无必要。直接在作业服务器启动包含Elastic Job的作业进程即可

具体搭建步骤如下:

2.1 搭建

下载地址:传送门

解压缩 elastic-job-lite-console-${version}.tar.gz 。

进入 bin目录 并执行:

bin\start.sh

打开浏览器访问 http://localhost:8899/ 即可访问控制台。8899为默认端口号,可通过启动脚本输入-p自定义端口号。

elastic-job-lite-console-${version}.tar.gz 也可通过 elastic-job 源码用 mvn install编译获取。

输入用户名 root 密码 root 即可打开主界面如下图

提供两种账户,管理员及访客,管理员拥有全部操作权限,访客仅拥有察看权限。默认管理员用户名和密码是root/root,访客用户名和密码是guest/guest,可通过conf\auth.properties修改管理员及访客用户名及密码。

2.2 配置及使用

1 配置注册中心地址

先启动zookeeper 然后在注册中心配置界面点添加

点击提交后,然后点连接(zookeeper必须处于启动状态)

连接成功后,在作业维度下可以显示该命名空间下作业名称、分片数量及该作业的cron表达式等信息在服务器维度可以查看服务器ip、当前运行的实例数、作业总数等信息。

2 配置事件追踪数据源

在事件追踪数据源配置页面点添加按钮,输入相关信息

提交后点击连接即可在作业历史下查看作业历史记录

3 dump命令

使用Elastic-Job-Lite过程中可能会碰到一些问题,导致作业运行不稳定。由于无法在生产环境调试,通过dump命令可以把作业内部相关信息dump出来,方便开发者debug分析。

(1)开启dump监控端口,并运行程序

修改中ElasticJobConfifig中的createJobConfifiguration方法里JobRootConfifiguration的配置,开启dump监控端口:

JobRootConfiguration simpleJobRootConfig = LiteJobConfiguration.newBuilder(simpleJobConfig)
.monitorPort(9888)//设置dump端口
.build();

(2)windows中安装netcat(若操作系统中已经有nc命令,此步骤可略过)

tools文件夹内包含netcat-win32-1.12.zip,解压即可。

(3)执行dump命令

打开命令行工具,进入netcat-win32-1.12.zip的解压目录,执行以下命令:

echo dump| nc 127.0.0.1 9888 > job_debug_dump.txt

会在当前目录生成job_debug_dump.txt文件,打开job_debug_dump.txt后看到:

/com.example.demo.job.FileBackupJobDb/sharding | 
/com.example.demo.job.FileBackupJobDb/sharding/3 | 
/com.example.demo.job.FileBackupJobDb/sharding/3/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/sharding/2 | 
/com.example.demo.job.FileBackupJobDb/sharding/2/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/sharding/1 | 
/com.example.demo.job.FileBackupJobDb/sharding/1/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/sharding/0 | 
/com.example.demo.job.FileBackupJobDb/sharding/0/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/servers | 
/com.example.demo.job.FileBackupJobDb/servers/ip18 | 
/com.example.demo.job.FileBackupJobDb/servers/ip2 | 
/com.example.demo.job.FileBackupJobDb/leader | 
/com.example.demo.job.FileBackupJobDb/leader/sharding | 
/com.example.demo.job.FileBackupJobDb/leader/election | 
/com.example.demo.job.FileBackupJobDb/leader/election/latch | 
/com.example.demo.job.FileBackupJobDb/leader/election/instance | ip18@-@19084
/com.example.demo.job.FileBackupJobDb/instances | 
/com.example.demo.job.FileBackupJobDb/instances/ip18@-@19084 | 
/com.example.demo.job.FileBackupJobDb/config | {"jobName":"com.example.demo.job.FileBackupJobDb","jobClass":"com.example.demo.job.FileBackupJobDb","jobType":"SIMPLE","cron":"0/10 * * * * ?","shardingTotalCount":4,"shardingItemParameters":"0\u003dtext,1\u003dimage,2\u003dradio,3\u003dvedio","jobParameter":"","failover":false,"misfire":true,"description":"","jobProperties":{"job_exception_handler":"com.dangdang.ddframe.job.executor.handler.impl.DefaultJobExceptionHandler","executor_service_handler":"com.dangdang.ddframe.job.executor.handler.impl.DefaultExecutorServiceHandler"},"monitorExecution":true,"maxTimeDiffSeconds":-1,"monitorPort":9888,"jobShardingStrategyClass":"","reconcileIntervalMinutes":10,"disabled":false,"overwrite":true}

里面展示的其实就是FileBackupJob任务在Zookeeper中的信息。

到此这篇关于Java Elastic-Job分布式定时任务使用方法介绍的文章就介绍到这了,更多相关Java Elastic-Job内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!


参考资料

相关文章

  • Java通过数据库表生成实体类详细过程

    发布:2023-04-11

    这篇文章主要介绍了Java通过数据库表生成实体类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧


  • java并发分段锁实践代码

    发布:2022-10-18

    为网友们分享了关于java的教程,这篇文章主要介绍了java并发分段锁实践代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下


  • Java switch 语句如何使用 String 参数

    发布:2022-04-11

    这篇文章主要介绍了Java switch 语句如何使用 String 参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下


  • JavaScript Canvas绘制圆形时钟效果代码实例

    发布:2020-03-17

    这篇文章主要为大家详细介绍了JavaScript Canvas绘制圆形时钟效果的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • SpringBoot使用过滤器、拦截器和监听器的案例代码(Springboot搭建java项目)

    发布:2023-04-15

    这篇文章主要介绍了SpringBoot使用过滤器、拦截器和监听器(Springboot搭建java项目),本文是基于Springboot搭建java项目,结合案例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


  • Java简单几步实现一个二叉搜索树

    发布:2023-04-07

    二叉树包含了根节点,孩子节点,叶节点,每一个二叉树只有一个根节点,每一个结点最多只有两个节点,左子树的键值小于根的键值,右子树的键值大于根的键值,下面这篇文章主要给大家介绍了关于如何在Java中实现二叉搜索树的相关资料,需要的朋友可以参考下


  • java微服务架构雪崩效应详解

    发布:2019-12-08

    这篇文章主要介绍了了解java架构之微服务架构—雪崩效应,微服务化产品线,每一个服务专心于自己的业务逻辑,并对外提供相应的接口,看上去似乎很明了,其实还有很多的东西需要考虑,


  • Java关于参数传递问题

    发布:2020-03-27

    这篇文章主要介绍了Java中的参数传递问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


网友讨论