一、Elastic-job整体的目录划分
zk
||---------elastic-job-cloud(xx_cloud.properties zk_namespacep配置)
||------- config
||------------/job(任务配置)
||------------/app(运行APP配置)
||---------/state(作业状态)
||--------ready(待运行)
||----------/disable/app(禁用应用队列节点路径.)
||----------/failover(待失效转移任务队列节点路径..)
||----------/running(执行中的作业节点)
二、Elastic-job app节点内容
APP节点内容,主要为APP name, cpu ,内存等情况
private final String appName;
private final String appURL;
private final String bootstrapScript;
private double cpuCount = 1;
private double memoryMB = 128;
private boolean appCacheEnable = true;
private int eventTraceSamplingCount;
三、Elastic-job 配置更新监听
使用CloudJobConfigurationListener完成配置节点的更新动作,主要原理是使用curator中的TreeCache并使用一个线程监听zk目录变化
getCache().getListenable().addListener(this, Executors.newSingleThreadExecutor());
四、定时作业的处理方式
在ES中使用标准的Quatz表达式,解析CONFIG/JOB下的作业(已经在加载在内存中),并触发写入到READY目录下去。(在作业存储结构上,TransientProducerRepository中定义了ConcurrentHashMap<JobKey, List<String>> cronTasks ,其中cron采用了cron表达式,为key作业为LIST的方式,减少了表达式的数量
private JobDetail buildJobDetail(final JobKey jobKey) {
JobDetail result =
JobBuilder.newJob(ProducerJob.class).withIdentity(jobKey).build();
result.getJobDataMap().put("repository", repository);
result.getJobDataMap().put("readyService", readyService);
return result;
}
ProducerJob.class 类中
@Setter
public static final class ProducerJob implements Job {
private TransientProducerRepository repository;
private ReadyService readyService;
@Override
public void execute(final JobExecutionContext context) throws
JobExecutionException {
List<String> jobNames = repository.get(context.getJobDetail().getKey());
for (String each : jobNames) {
readyService.addTransient(each);
}
}
}
分享到:
相关推荐
本文主要介绍了SpringBoot2整合ElasticJob框架的过程详解,从ElasticJob的简介、基础框架结构、分片管理、个性化参数到定时任务加载、核心依赖包、核心配置文件、自定义注解等方面进行了详细的讲解。 一、Elastic...
Elastic-Job Lite Console是基于Elastic-Job Lite的一个监控平台,主要用来管理和监控分布式作业的执行情况。Elastic-Job是由当当网开源的、轻量级的分布式任务调度框架,它分为Elastic-Job-Lite和Elastic-Job-Cloud...
1. **模块结构**:解压后得到的`elastic-job-lite-console-2.1.6-SNAPSHOT`目录下包含了项目的各个模块,如`api`、`common`、`console`、`core`等。这些模块分别对应了不同的功能,例如`api`模块提供对外接口定义,`...
、ElasticJob简介 1、定时任务 在前面的文章中,说过QuartJob这个定时任务,被广泛应用的定时任务标准。但Quartz核心点在于执行定时任务并不是在于关注的业务模式和场景,缺少高度自定义的功能。Quartz能够基于...
目录结构说明使用步骤开发指南使用限制运维平台阅读源码编译问题说明实现原理作业分片策略监控快速上手(感谢第三方志愿者 泽伟@心探索科技 提供文档)InfoQ新闻Elastic-Job Wiki (由社区志愿者自由编辑的) ...
1.0.1版本,配置前缀为elasticJob.xxx.xxx Spring Boot 2.X版本使用elastic-job-spring-boot-starter 1.0.2版本,配置前缀为elastic.job.xxx.xxx Elastic-Job Spring Boot 自动集成,只需要一个注解即可发布Job。 ...
同时,Elasticsearch还提供了全文检索、近实时搜索和分析功能,使我们能够处理大量非结构化数据。 然后,我们将探索Elasticsearch的监控和运维。Kibana是ElasticStack的重要组件,用于数据可视化和集群监控。学习...
在解压"elasticsearch-hadoop-2.4.0.zip"后,你会得到包含JAR文件和其他资源的目录结构。这些JAR文件需要添加到Hadoop作业的类路径中,以便Hadoop集群能够识别并使用Elasticsearch的相关功能。同时,还需要正确配置...
5. **映射自动生成**:Elasticsearch-JDBC可以自动根据数据库表结构生成Elasticsearch的映射(Mapping),将数据库字段对应到Elasticsearch的文档字段。 6. **错误处理与重试机制**:在数据导入过程中,如果遇到...
4. **数据同步过程**:一旦配置好,Elasticsearch-JDBC可以通过命令行或者计划任务(如Linux的cron job)定期运行,将MySQL中的新数据或更新的数据同步到Elasticsearch索引中。 5. **错误处理与日志记录**:在同步...
《Elastic-Job在当当任务调度中的应用详解》 Elastic-Job是当当网开源的一款分布式任务调度框架,其设计目标是提供轻量级、高可用的分布式任务调度解决方案。本文将深入探讨Elastic-Job在Java环境下的简单应用实例...
HBase是一个基于Google Bigtable设计的高可靠性、高性能、分布式的行存数据库,适用于半结构化和非结构化数据的存储;而Elasticsearch是一款强大的全文搜索引擎,常用于数据分析和实时搜索。 1. **HBase-Elastic...
Elastic-job在Zookeeper中的数据存储结构以namespace为根目录,例如`elastic-job-example-lite-java`,然后是具体的jobname,如`javaSimpleJob`。节点分为两类:临时节点(绿色)和数据节点(红色)。临时节点用于...
然后,选中【File Management】,在“Working Directory”栏输入工作目录“D:\ansys\example301”,在“Job Name”栏输入文件名“Support”。单击“RUN”按钮,进入 ANSYS10.0 的 GUI 操作界面。 在 GUI 操作界面中...
这里涉及到全文检索技术,如Elasticsearch或Solr,它们能对职位描述进行智能匹配。 6. **个人中心**:用户可以创建和管理简历,包括上传、编辑、删除简历。这需要后端存储和权限控制,以及可能的PDF或Word简历导出...
现在,在目录target中应该有一个名为elasticquery-0.0.1-SNAPSHOT-job.jar的.jar,其中包含运行所需的所有类。 将.jar复制到集群并使用 hadoop jar elasticquery-0.0.1-SNAPSHOT-job.jar propertiesFileName output...
3. **定时任务(cronjob)**:描述中提到在cronjob中使用这个脚本,cronjob是Unix/Linux系统中的定时任务调度器,可以按预设的时间间隔自动执行任务,如定期同步Performance Schema的数据到Elasticsearch,确保数据的...
这个项目可能包含实现类似功能的源代码、数据库结构、前端界面和后端服务等相关内容。 【描述】提到"此项目是一个网上找工作的项目,像51job此类网站",意味着它旨在模仿或扩展51job的功能,为用户提供发布简历、...
- 首先,需要在Elasticsearch中设置适当的索引和映射,以适应Quartz的Job和Trigger数据结构。 - 然后,在Quartz配置中指定`quartz-elasticsearch-jobstore`作为JobStore实现,提供连接Elasticsearch集群的配置信息...