package com.vdyoo.cloud.paas.task.task;
import com.google.gson.Gson;
import com.vdyoo.cloud.log.Logger;
import com.vdyoo.cloud.paas.core.exam.model.ClasssStudentExam;
import com.vdyoo.cloud.paas.core.exam.service.ClasssStudentExamService;
import com.vdyoo.cloud.paas.core.system.model.BatchResult;
import com.vdyoo.cloud.paas.core.system.service.BatchResultService;
import org.elasticsearch.action.index.IndexRequestBuilder;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.rest.RestStatus;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by mason on 2017/8/23.
*/
@Service
public class SyncStudentExamDetailToElasticSearchTask implements CommandLineRunner {
@Resource
ClasssStudentExamService classsStudentExamService;
@Resource
BatchResultService batchResultService;
TransportClient client;
@Override
public void run(String... strings) throws Exception {
Logger.console.d("------------------------------------------------");
Logger.console.d("TASK SyncStudentExamDetailToElasticSearchTask");
Logger.console.d("------------------------------------------------");
init();
while (true) {
doRun();
dowait();
}
}
/*此方法初始化连接es*/
void init() throws UnknownHostException {
Logger.console.d("init...");
System.out.println("create TransportClient...");
client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(""), 9300))
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(""), 9300))
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(""), 9300));
}
/*执行数据同步*/
void doRun() {
Logger.console.d("run...执行中。。。");
String batchName = "SyncStudentExamDetailToElasticSearchTask";
String type = "";
BatchResult batchResult = batchResultService.getByBatchAndType(batchName, type);
if(batchResult==null){
batchResult = batchResultService.init(batchName, type);
}
System.out.println("#######################"+batchResult.getIntMaxValue());
Gson gson = new Gson();
//查询学生答题的基础数据数据
List<ClasssStudentExam> classsStudentExamServiceAll = classsStudentExamService.findByMaxId(batchResult.getIntMaxValue());
int maxId=0;
for (ClasssStudentExam classsStudentExam:classsStudentExamServiceAll) {
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
String format = simpleDateFormat.format(date);
System.out.println("===========我的时间 : "+format+" =====format");
Map map = new HashMap();
map.put("id", classsStudentExam.getId());
map.put("Classs", classsStudentExam.getClasss());
map.put("CourseClass", classsStudentExam.getCourseClass());
map.put("CourseClassExam",classsStudentExam.getCourseClassExam());
map.put("Examnum",classsStudentExam.getExamnum());
map.put("Ok",classsStudentExam.getOk());
map.put("Room",classsStudentExam.getRoom());
map.put("Score",classsStudentExam.getScore());
map.put("Student",classsStudentExam.getStudent());
map.put("Updatetime",classsStudentExam.getUpdatetime());
map.put("Createtime",classsStudentExam.getCreatetime());
map.put("Answer",classsStudentExam.getAnswer());
map.put("CourseplanId",classsStudentExam.getCourseplan());
map.put("Mydate",format);
String json = gson.toJson(map);
System.out.println(json);
//索引名称 和 类型
IndexRequestBuilder indexRequestBuilder = client.prepareIndex("testwang", "answer", classsStudentExam.getId().toString()).setSource(json);
IndexResponse response = indexRequestBuilder.get();
String _index = response.getIndex();
System.out.println(_index);
// Type name
String _type = response.getType();
// Document ID (generated or not)
String _id = response.getId();
// Version (if it's the first time you index this document, you will get: 1)
long _version = response.getVersion();
// status has stored current instance statement.
RestStatus status = response.status();
maxId=classsStudentExam.getId();
}
batchResultService.updateIntMaxValue(batchName,type,maxId);
}
/*设置同步时间*/
void dowait() {
Logger.console.d("wait...等待中。。。");
System.out.println();
try {
Thread.sleep(50000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
spring-cloud模块spring-boot微服务 mysql数据同步到elasticsearch 实时同步
共21个文件
xml:5个
class:5个
java:5个
2星 需积分: 50 71 下载量 96 浏览量
2017-08-25
16:55:50
上传
评论 1
收藏 31KB ZIP 举报
温馨提示
这个demo 希望可以帮助大家
资源推荐
资源详情
资源评论
收起资源包目录
paas-task.zip (21个子文件)
paas-task
paas-task
pom.xml 4KB
target
test-classes
com
vdyoo
cloud
paas
core
PaasCoreApiApplicationTest.class 658B
web
common
sms
SmsSendServiceTest.class 1KB
generated-test-sources
test-annotations
classes
logback.xml 189B
application.properties 0B
com
vdyoo
cloud
paas
task
PaasTaskApplication.class 829B
task
Test.class 1KB
SyncStudentExamDetailToElasticSearchTask.class 9KB
localEhcache.xml 2KB
bootstrap.yml 1KB
generated-sources
annotations
src
test
java
com
vdyoo
cloud
paas
core
PaasCoreApiApplicationTest.java 552B
web
common
sms
SmsSendServiceTest.java 829B
common
main
resources
logback.xml 189B
application.properties 0B
templates
static
localEhcache.xml 2KB
bootstrap.yml 835B
docker
Dockerfile 193B
java
com
vdyoo
cloud
paas
task
PaasTaskApplication.java 453B
task
SyncStudentExamDetailToElasticSearchTask.java 6KB
Test.java 1KB
paas-task.iml 29KB
共 21 条
- 1
资源评论
- 神秘嘉宾吴彦祖2021-01-12对我用处不大,50积分
- 小清秋2018-03-09写的什么玩意 查询的你封装了 插入的你也封装了 难道你是让我来看方法名称的么
- sxcdbei2018-09-18全都封装了……
- qq_182493792018-03-03非常好非常好
- MagicianA2022-12-08大部分都封装了怎么看!!!!
我崽儿了你
- 粉丝: 6
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 王锐的《OpenSceneGraph 3.0 Beginner's Guide》中文翻译版,个人读了翻译的很不错!值得推荐
- scr ubuntu上传
- AI Python编程学习课件-第6章深度学习
- STM32单片机FPGA毕设电路原理论文报告液晶显示模块与8031单片机的接口电路及编程
- STM32单片机FPGA毕设电路原理论文报告液晶航向指示器接口电路设计
- Pytorch深度学习入门与实战2024
- STM32单片机FPGA毕设电路原理论文报告野战救护车手术台稳定液压系统及其自动控制
- STM32单片机FPGA毕设电路原理论文报告压延机卷取调速装置改造
- STM32单片机FPGA毕设电路原理论文报告形状记忆合金驱动的微电脑密码锁的设计
- HTML小游戏27 - Chuck Chicken 魔法蛋网页游戏源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功