返回

ElasticJob:入门指南

后端

ElasticJob:入门指南 #

ElasticJob 是一个分布式定时任务框架,提供了作业分片策略、定时任务追综、作业运行状态监控、作业监听器、自诊断修复等功能。

ElasticJob 的特点

  • 分布式: ElasticJob 可以将任务分片到多个作业服务器上执行,从而提高任务的执行效率。
  • 高可靠: ElasticJob 提供了多种容错机制,可以保证任务即使在某些作业服务器宕机的情况下也能正常执行。
  • 易于使用: ElasticJob 提供了友好的用户界面,即使是新手也可以快速上手。

ElasticJob 的应用场景

  • 定时任务: ElasticJob 可以用于执行各种定时任务,例如每天早上 8 点发送邮件、每天晚上 10 点备份数据等。
  • 批量任务: ElasticJob 可以用于执行批量任务,例如将大量数据从一个数据库迁移到另一个数据库。
  • 并行任务: ElasticJob 可以用于执行并行任务,例如同时下载多个文件。

如何使用 ElasticJob

1. 安装 ElasticJob

mvn install:install-file -Dfile=elastic-job-lite-core-3.0.2.jar -DgroupId=com.dangdang -DartifactId=elastic-job-lite-core -Dversion=3.0.2 -Dpackaging=jar

2. 配置 ElasticJob

<bean id="jobConfig" class="com.dangdang.ddframe.job.config.JobCoreConfiguration">
    <property name="cron" value="0/30 * * * * ?" />
    <property name="shardingTotalCount" value="2" />
    <property name="shardingItemParameters" value="0=A,1=B" />
</bean>

<bean id="job" class="com.dangdang.ddframe.job.lite.api.listener.SimpleJobListener">
    <property name="startedTimeoutMilliseconds" value="10000" />
    <property name="completedTimeoutMilliseconds" value="10000" />
</bean>

3. 启动 ElasticJob

JobScheduler jobScheduler = new JobScheduler(regCenter, "myJob", jobConfig, job);
jobScheduler.init();

ElasticJob 的常见问题

1. ElasticJob 的作业分片策略有哪些?

ElasticJob 提供了三种作业分片策略:

  • 平均分配: 将作业均匀地分配到各个作业服务器上。
  • 一致性哈希: 将作业根据其分片键分配到不同的作业服务器上。
  • 自定义: 用户可以自定义作业分片策略。

2. ElasticJob 的容错机制有哪些?

ElasticJob 提供了多种容错机制,包括:

  • 任务失败重试: 如果任务执行失败,ElasticJob 会自动重试该任务。
  • 作业服务器宕机: 如果作业服务器宕机,ElasticJob 会将该作业服务器上的任务重新分配到其他作业服务器上执行。
  • 注册中心宕机: 如果注册中心宕机,ElasticJob 会进入失效转移模式,此时作业仍然可以正常执行,但无法进行新的作业调度。

3. ElasticJob 的监控功能有哪些?

ElasticJob 提供了多种监控功能,包括:

  • 作业运行状态监控: ElasticJob 可以监控作业的运行状态,包括作业是否正在执行、作业执行进度等。
  • 作业监听器: ElasticJob 提供了作业监听器,可以对作业的执行情况进行监听。
  • 自诊断修复: ElasticJob 可以对自身进行诊断,并修复发现的问题。

总结

ElasticJob 是一个分布式定时任务框架,提供了作业分片策略、定时任务追综、作业运行状态监控、作业监听器、自诊断修复等功能。