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}

 

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