文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-01-16 12:01

关注

1 事件追踪

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

1.1 修改Elastic-Job配置类

在ElasticJobConfig中修改:

    @Autowired
    private DataSource dataSource;
    
    @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控制台

设计理念

主要功能

不支持项

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内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯