Elastic-Job (三)实现Script 作业

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章