+++
pre = "<b>3.6. </b>"
title = "作业开放生态"
weight = 6
chapter = true
+++

灵活定制化作业是 ElasticJob 3.x 版本的最重要设计变革。
新版本基于 Apache ShardingSphere 可插拔架构的设计理念，打造了全新作业 API。
意在使开发者能够更加便捷且相互隔离的方式拓展作业类型，打造 ElasticJob 作业的生态圈。

ElasticJob 提供了对作业的弹性伸缩、分布式治理等功能的同时，并未限定作业的类型。
它通过灵活的作业 API，将作业解耦为作业接口和执行器接口。
用户可以定制化全新的作业类型，诸如脚本执行、HTTP 服务执行（3.0.0-beta 提供）、大数据类作业、文件类作业等。
目前 ElasticJob 内置了简单作业、数据流作业和脚本执行作业，并且完全开放了扩展接口，开发者可以通过 SPI 的方式引入新的作业类型，并且可以便捷的回馈至社区。

## 作业接口

ElasticJob 的作业可划分为基于 class 类型和基于 type 类型两种。

Class 类型的作业由开发者直接使用，需要由开发者实现该作业接口实现业务逻辑。典型代表：Simple 类型、Dataflow 类型。
Type 类型的作业只需提供类型名称即可，开发者无需实现该作业接口，而是通过外置配置的方式使用。典型代表：Script 类型、HTTP 类型。

## 执行器接口

用于执行用户定义的作业接口，通过 Java 的 SPI 机制织入 ElasticJob生态。
