脚本作业是用来定时调度脚本文件的,如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日)
相关推荐
5. **启动服务**:运行启动脚本启动Elastic-Job-Lite控制台服务。 6. **监控和管理**:通过控制台界面查看任务状态,调整任务配置,处理异常情况。 总的来说,Elastic-Job-Lite是一个强大而灵活的分布式任务调度...
Elastic-Job Lite Console是基于Elastic-Job Lite的一个监控平台,主要用来管理和监控分布式作业的执行情况。Elastic-Job是由当当网开源的、轻量级的分布式任务调度框架,它分为Elastic-Job-Lite和Elastic-Job-Cloud...
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"的压缩包中,包含的文件可能是源码、编译后的类库、配置文件以及可能的部署脚本。用户可以下载此压缩包,解压后进行编译、打包和部署。为了运行控制台,通常需要一个...
再者,Elastic-Job Lite Console支持多种任务类型,包括简单任务、数据流任务和脚本任务等,满足不同场景的需求。同时,它还提供了丰富的调度策略,如简单调度、周期性调度、依赖调度等,使得任务执行更加灵活。此外...
Elastic-Job是一个分布式任务调度框架,由当当网开源,它主要分为两个部分:Elastic-Job-Lite和Elastic-Job-Cloud。本文将深入探讨Elastic-Job的核心特性、工作原理以及如何在实际项目中应用。 一、Elastic-Job概述...
在使用Elastic-Job进行测试时,首先需要解压"elastic-job-example-cloud-2.1.5.tar.gz",然后根据bin目录下的启动脚本启动Elastic-Job的服务。接着,通过编写作业定义(比如基于Java或Groovy的Job类),并利用...
该项目是一个基于Java的Elastic-Job分布式任务调度解决方案设计源码,包含1048个文件,包括535个Java源文件、178个Markdown文档、82个XML配置文件、39个HTML文件、31个PNG图像文件、16个CSS样式文件、15个JavaScript...
《分布式作业定时任务框架elastic-job实战详解》 在IT行业中,高效、稳定且可扩展的任务调度是企业系统架构中的重要一环。Elastic-Job是一个轻量级分布式任务调度框架,由当当网开源,旨在解决分布式环境下的作业...
Elasticsearch-Job-Console 是一个专门为 Elasticsearch 设计的分布式定时任务管理工具,它提供了图形化的用户界面,使得用户能够方便地创建、管理和监控定时任务。这个工具在大数据处理和实时分析场景中非常实用,...
用maven将elastic job lite源码编译的压缩包,解压缩在 elastic-job-lite-console-3.0.0.M1-SNAPSHOT.tar.gz\bin目录下是启动脚本 windows环境用:start.bat linux环境用:start.sh
在IT行业中,Elastic-Job是一个非常重要的分布式任务调度框架,尤其在大数据处理和微服务架构中发挥着关键作用。Elastic-Job由两个部分组成:Elastic-Job-Lite和Elastic-Job-Cloud。前者是轻量级的解决方案,适用于...
在维护和使用 ElasticJob 的过程中,还需要关注作业的监控和告警,特别是在高并发和大数据量的环境下,需要对作业的执行效率和状态有充分的了解,并且及时做出调整。这样既可以保证作业的稳定运行,也可以提高系统的...
2. **Elastic-job**:Elastic-job是当当网开源的作业框架,分为Elastic-job-lite和Elastic-job-cloud两个产品线。Elastic-job-lite是一款轻量级、无中心化的解决方案,依赖Zookeeper进行任务协调。它通过监听...
ElasticJob 是面向互联网生态和海量任务的分布式调度解决方案,由两个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成。 它通过弹性调度、资源管控、以及作业治理的功能,打造一个适用于互联网场景的...