附:可以參考: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}