附:可以参考:Elastic-Job (一)实现Simple作业,Elastic-Job (二)实现Dataflow作业
对于Script类型作业,官方文档给的解释是:
Script类型作业:
Script类型作业意为脚本类型作业,支持shell,python,perl等所有类型脚本。只需通过控制台或代码配置scriptCommandLine即可,无需编码。执行脚本路径可包含参数,参数传递完毕后,作业框架会自动追加最后一个参数为作业运行时信息。
脚本文件:test.cmd:
echo 我是cmd脚本,我的作业信息是%1,%2,%3,%4,%5
LiteJobConfig :
package com.lucifer.config;
import com.dangdang.ddframe.job.config.JobCoreConfiguration;
import com.dangdang.ddframe.job.config.JobTypeConfiguration;
import com.dangdang.ddframe.job.config.script.ScriptJobConfiguration;
import com.dangdang.ddframe.job.lite.api.JobScheduler;
import com.dangdang.ddframe.job.lite.config.LiteJobConfiguration;
import com.dangdang.ddframe.job.reg.base.CoordinatorRegistryCenter;
import com.dangdang.ddframe.job.reg.zookeeper.ZookeeperConfiguration;
import com.dangdang.ddframe.job.reg.zookeeper.ZookeeperRegistryCenter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author lucifer
* @date 2020/5/4 19:50
* @description elastic-job配置
*/
@Configuration
public class LiteJobConfig {
private static final String SERVER_LISTS = "192.168.24.128:2181";
private static final String NAMES_SPACE = "myScriptJob";
@Bean
public static void JobScheduler() {
new JobScheduler(zkCenter(), scriptJobConfiguration()).init();
}
public static CoordinatorRegistryCenter zkCenter() {
ZookeeperConfiguration zookeeperConfiguration =
new ZookeeperConfiguration(SERVER_LISTS, NAMES_SPACE);
CoordinatorRegistryCenter coordinatorRegistryCenter =
new ZookeeperRegistryCenter(zookeeperConfiguration);
//注册中心初始化
coordinatorRegistryCenter.init();
return coordinatorRegistryCenter;
}
/**
* job配置
*
* @return
*/
public static LiteJobConfiguration scriptJobConfiguration() {
//job核心配置
JobCoreConfiguration jobCoreConfiguration = JobCoreConfiguration
.newBuilder("myScriptJob", "0/10 * * * * ? ", 2)
.build();
//job类型配置
JobTypeConfiguration jobTypeConfiguration =
new ScriptJobConfiguration(jobCoreConfiguration, "D:\\test.cmd");
//job根的配置
LiteJobConfiguration liteJobConfiguration = LiteJobConfiguration
.newBuilder(jobTypeConfiguration)
.build();
return liteJobConfiguration;
}
}
控制台打印:
D:\work\idea_work\job-study>echo 我是cmd脚本,我的作业信息�?1,"taskId":"myScriptJob@-@0,1@-@READY@[email protected]@-@16156","shardingTotalCount":2,"jobParameter":"","shardingItem":0}
我是cmd脚本,我的作业信息�?1,"taskId":"myScriptJob@-@0,1@-@READY@[email protected]@-@16156","shardingTotalCount":2,"jobParameter":"","shardingItem":0}
D:\work\idea_work\job-study>echo 我是cmd脚本,我的作业信息�?1,"taskId":"myScriptJob@-@0,1@-@READY@[email protected]@-@16156","shardingTotalCount":2,"jobParameter":"","shardingItem":1}
我是cmd脚本,我的作业信息�?1,"taskId":"myScriptJob@-@0,1@-@READY@[email protected]@-@16156","shardingTotalCount":2,"jobParameter":"","shardingItem":1}
D:\work\idea_work\job-study>echo 我是cmd脚本,我的作业信息�?1,"taskId":"myScriptJob@-@0,1@-@READY@[email protected]@-@16156","shardingTotalCount":2,"jobParameter":"","shardingItem":0}
我是cmd脚本,我的作业信息�?1,"taskId":"myScriptJob@-@0,1@-@READY@[email protected]@-@16156","shardingTotalCount":2,"jobParameter":"","shardingItem":0}
D:\work\idea_work\job-study>echo 我是cmd脚本,我的作业信息�?1,"taskId":"myScriptJob@-@0,1@-@READY@[email protected]@-@16156","shardingTotalCount":2,"jobParameter":"","shardingItem":1}
我是cmd脚本,我的作业信息�?1,"taskId":"myScriptJob@-@0,1@-@READY@[email protected]@-@16156","shardingTotalCount":2,"jobParameter":"","shardingItem":1}