1.Spring集成与分片详解
1.1pom依赖
1.2application.properties
定义配置类和任务类中要用到的参数
1.3创建任务
创建任务类,加上@Component注解
1.4注册中心配置
Bean的initMethod属性用来指定Bean初始化完成之后要执行的方法,用来替代继承InitializingBean
接口,以便在容器启动的时候创建注册中心。
1.5作业三级配置
Core——Type——Lite
return LiteJobConfiguration.newBuilder(new SimpleJobConfiguration(JobCoreConfiguration.newBuilder(
1.6作业运行
先把application.properties中的分片数全部改成1启动com.gupaoedu.EjobApp的main方法
1.7分片策略
分片项与分片参数
任务分片,是为了实现把一个任务拆分成多个子任务,在不同的ejob示例上执行。例如100W条数据在配置文件中指定分成10个子任务(分片项),这10个子任务再按照一定的规则分配到5个实际运行的服务器上执行。除了直接用分片项ShardingItem获取分片任务之外,还可以用item对应的parameter
获取任务。
springboot工程,在application.properties中定义。定义几个分片项,一个任务就会有几个线程去运行它。注意:分片个数和分片参数要一一对应。通常把分片项设置得比E-Job服务器个数大一些,比如3
台服务器,分成9片,这样如果有服务器宕机,分片还可以相对均匀
分片验证
为避免运行的任务太多看不清楚运行结果,可以注释在ElasticJobConfig中注释DataFlowJob和
ScriptJob。SimpleJob的分片项改成2。直接运行com.gupaoedu.EjobApp。或者打成jar包