`
234390216
  • 浏览: 10232956 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462622
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1775515
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398356
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:395022
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:679983
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:530892
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1183946
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:467918
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151393
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68153
社区版块
存档分类
最新评论

Elastic-job之脚本作业

阅读更多

脚本作业是用来定时调度脚本文件的,如windows的cmd,linux上的shell文件,在调度的时候会把当前调度的ShardingContext的转化为一个JSON串作为脚本调度的参数进行传递。其不需要指定作业对应的class,因为我们不是通过我们自己的class来进行调度的。脚本作业在配置时由<job:script/>配置,示例如下:

<job:script id="myScriptJob" registry-center-ref="regCenter"
	cron="0/30 * * * * ?" sharding-total-count="3"
	sharding-item-parameters="0=shard-0,1=shard-1,2=shard-2"
	script-command-line="echo hello" overwrite="true"/>

其中script-command-line属性用于指定该调度对应的脚本文件路径或某个可执行的指令。这里只是简单的打印一下hello和ShardingContext对应的JSON形式。其它配置参数和之前介绍的简单作业的配置参数类似。

脚本作业将由com.dangdang.ddframe.job.executor.type.ScriptJobExecutor执行。其代码如下:

public final class ScriptJobExecutor extends AbstractElasticJobExecutor {
    
    public ScriptJobExecutor(final JobFacade jobFacade) {
        super(jobFacade);
    }
    
    @Override
    protected void process(final ShardingContext shardingContext) {
        final String scriptCommandLine = ((ScriptJobConfiguration) getJobRootConfig().getTypeConfig()).getScriptCommandLine();
        if (Strings.isNullOrEmpty(scriptCommandLine)) {
            throw new JobConfigurationException("Cannot find script command line for job '%s', job is not executed.", shardingContext.getJobName());
        }
        executeScript(shardingContext, scriptCommandLine);
    }
    
    private void executeScript(final ShardingContext shardingContext, final String scriptCommandLine) {
        CommandLine commandLine = CommandLine.parse(scriptCommandLine);
        commandLine.addArgument(GsonFactory.getGson().toJson(shardingContext), false);
        try {
            new DefaultExecutor().execute(commandLine);
        } catch (final IOException ex) {
            throw new JobConfigurationException("Execute script failure.", ex);
        }
    }
}

(本文由Elim写于2017年10月1日)

0
0
分享到:
评论

相关推荐

    elastic-job-lite-console-2.1.5.zip[支持Windows/Os/Linux]

    5. **启动服务**:运行启动脚本启动Elastic-Job-Lite控制台服务。 6. **监控和管理**:通过控制台界面查看任务状态,调整任务配置,处理异常情况。 总的来说,Elastic-Job-Lite是一个强大而灵活的分布式任务调度...

    elastic-job-lite-console-2.1.5.tar.gz

    Elastic-Job Lite Console是基于Elastic-Job Lite的一个监控平台,主要用来管理和监控分布式作业的执行情况。Elastic-Job是由当当网开源的、轻量级的分布式任务调度框架,它分为Elastic-Job-Lite和Elastic-Job-Cloud...

    elastic-job-lite-console-master.zip

    Elastic-Job-Lite是一款轻量级的分布式任务调度框架,由当当网开源,它提供了简单易用的API和可扩展的作业生态。在Elastic-Job-Lite中,"elastic-job-lite-console-master.zip"是一个包含Elastic-Job-Lite的可视化...

    elastic-job-lite-console-3.0.0.M1-SNAPSHOT.tar.gz

    在"Elastic-job-lite-console-3.0.0.M1-SNAPSHOT"的压缩包中,包含的文件可能是源码、编译后的类库、配置文件以及可能的部署脚本。用户可以下载此压缩包,解压后进行编译、打包和部署。为了运行控制台,通常需要一个...

    elastic-job-lite-console-2.1.4.tar.gz

    再者,Elastic-Job Lite Console支持多种任务类型,包括简单任务、数据流任务和脚本任务等,满足不同场景的需求。同时,它还提供了丰富的调度策略,如简单调度、周期性调度、依赖调度等,使得任务执行更加灵活。此外...

    elastic-job可以案例

    Elastic-Job是一个分布式任务调度框架,由当当网开源,它主要分为两个部分:Elastic-Job-Lite和Elastic-Job-Cloud。本文将深入探讨Elastic-Job的核心特性、工作原理以及如何在实际项目中应用。 一、Elastic-Job概述...

    elastic-job-example-cloud-2.1.5.tar.gz

    在使用Elastic-Job进行测试时,首先需要解压"elastic-job-example-cloud-2.1.5.tar.gz",然后根据bin目录下的启动脚本启动Elastic-Job的服务。接着,通过编写作业定义(比如基于Java或Groovy的Job类),并利用...

    基于Java的Elastic-Job分布式任务调度解决方案设计源码

    该项目是一个基于Java的Elastic-Job分布式任务调度解决方案设计源码,包含1048个文件,包括535个Java源文件、178个Markdown文档、82个XML配置文件、39个HTML文件、31个PNG图像文件、16个CSS样式文件、15个JavaScript...

    elastic-demo.zip

    《分布式作业定时任务框架elastic-job实战详解》 在IT行业中,高效、稳定且可扩展的任务调度是企业系统架构中的重要一环。Elastic-Job是一个轻量级分布式任务调度框架,由当当网开源,旨在解决分布式环境下的作业...

    elasticsearch-job-console.zip

    Elasticsearch-Job-Console 是一个专门为 Elasticsearch 设计的分布式定时任务管理工具,它提供了图形化的用户界面,使得用户能够方便地创建、管理和监控定时任务。这个工具在大数据处理和实时分析场景中非常实用,...

    elastic job lite console 部署控制台

    用maven将elastic job lite源码编译的压缩包,解压缩在 elastic-job-lite-console-3.0.0.M1-SNAPSHOT.tar.gz\bin目录下是启动脚本 windows环境用:start.bat linux环境用:start.sh

    shoot——need.rar

    在IT行业中,Elastic-Job是一个非常重要的分布式任务调度框架,尤其在大数据处理和微服务架构中发挥着关键作用。Elastic-Job由两个部分组成:Elastic-Job-Lite和Elastic-Job-Cloud。前者是轻量级的解决方案,适用于...

    ElasticJob分布式调度解决方案-其他

    ElasticJob 是面向互联网生态和海量任务的分布式调度解决方案,由两个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成。 它通过弹性调度、资源管控、以及作业治理的功能,打造一个适用于互联网场景的...

    ElasticJob 中文文档.pdf

    在维护和使用 ElasticJob 的过程中,还需要关注作业的监控和告警,特别是在高并发和大数据量的环境下,需要对作业的执行效率和状态有充分的了解,并且及时做出调整。这样既可以保证作业的稳定运行,也可以提高系统的...

    大数据“分布式调度框架”大集合.docx

    2. **Elastic-job**:Elastic-job是当当网开源的作业框架,分为Elastic-job-lite和Elastic-job-cloud两个产品线。Elastic-job-lite是一款轻量级、无中心化的解决方案,依赖Zookeeper进行任务协调。它通过监听...

Global site tag (gtag.js) - Google Analytics