Browse Source

随服务自动开启更新虚拟列索引的定时任务

sunyj 9 years ago
parent
commit
ce9fd2269f

+ 15 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/Application.java

@@ -7,6 +7,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 import org.springframework.web.servlet.config.annotation.EnableWebMvc;
 
 import com.uas.search.console.b2b.core.util.ContextUtils;
+import com.uas.search.console.b2b.service.PurchaseInquiryMouldSimpleInfoService;
 
 @EnableTransactionManagement
 @EnableWebMvc
@@ -17,5 +18,19 @@ public class Application {
 		SpringApplication application = new SpringApplication(Application.class);
 		application.addListeners(new ContextUtils());
 		application.run(args);
+		startUpdateOverdueDailyTask();
+	}
+
+	/**
+	 * 自动开启更新虚拟列索引的定时任务
+	 */
+	public static void startUpdateOverdueDailyTask() {
+		SystemProperties systemProperties = ContextUtils.getBean(SystemProperties.class);
+		if (systemProperties.isDailyTaskAutoStart()) {
+			PurchaseInquiryMouldSimpleInfoService purchaseInquiryMouldService = ContextUtils
+					.getBean(PurchaseInquiryMouldSimpleInfoService.class);
+			purchaseInquiryMouldService.startUpdateOverdueDailyTask(systemProperties.getDailyTaskHour(),
+					systemProperties.getDailyTaskMinute(), systemProperties.getDailyTaskSecond());
+		}
 	}
 }

+ 71 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/SystemProperties.java

@@ -0,0 +1,71 @@
+package com.uas.search.console.b2b;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+/**
+ * 系统配置信息
+ * 
+ * @author sunyj
+ * @since 2016年12月13日 上午10:20:54
+ */
+@Component
+public class SystemProperties {
+
+	/**
+	 * 每天定时任务是否自动开启
+	 */
+	@Value("${schedule.daily.auto-start}")
+	private boolean dailyTaskAutoStart;
+
+	/**
+	 * 每天定时任务时间中的小时
+	 */
+	@Value("${schedule.daily.time.hour}")
+	private int dailyTaskHour;
+
+	/**
+	 * 每天定时任务时间中的分钟
+	 */
+	@Value("${schedule.daily.time.minute}")
+	private int dailyTaskMinute;
+
+	/**
+	 * 每天定时任务时间中的秒
+	 */
+	@Value("${schedule.daily.time.second}")
+	private int dailyTaskSecond;
+
+	public boolean isDailyTaskAutoStart() {
+		return dailyTaskAutoStart;
+	}
+
+	public void setDailyTaskAutoStart(boolean dailyTaskAutoStart) {
+		this.dailyTaskAutoStart = dailyTaskAutoStart;
+	}
+
+	public int getDailyTaskHour() {
+		return dailyTaskHour;
+	}
+
+	public void setDailyTaskHour(int dailyTaskHour) {
+		this.dailyTaskHour = dailyTaskHour;
+	}
+
+	public int getDailyTaskMinute() {
+		return dailyTaskMinute;
+	}
+
+	public void setDailyTaskMinute(int dailyTaskMinute) {
+		this.dailyTaskMinute = dailyTaskMinute;
+	}
+
+	public int getDailyTaskSecond() {
+		return dailyTaskSecond;
+	}
+
+	public void setDailyTaskSecond(int dailyTaskSecond) {
+		this.dailyTaskSecond = dailyTaskSecond;
+	}
+
+}

+ 2 - 3
search-console-b2b/src/main/java/com/uas/search/console/b2b/controller/ScheduleController.java

@@ -8,8 +8,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import com.uas.search.console.b2b.schedule.DailyTaskService;
 import com.uas.search.console.b2b.schedule.model.DailyTaskInformation;
+import com.uas.search.console.b2b.schedule.service.DailyTaskService;
 import com.uas.search.console.b2b.service.PurchaseInquiryMouldSimpleInfoService;
 
 @Controller
@@ -26,8 +26,7 @@ public class ScheduleController {
 	@ResponseBody
 	public String updateOverdue(@RequestParam(required = true) Integer hour,
 			@RequestParam(required = true) Integer minute, @RequestParam(required = true) Integer second) {
-		purchaseInquiryMouldService.startUpdateOverdueDailyTask(hour, minute, second);
-		return "ok";
+		return "已开启:" + purchaseInquiryMouldService.startUpdateOverdueDailyTask(hour, minute, second);
 	}
 
 	@RequestMapping("/tasks")

+ 1 - 1
search-console-b2b/src/main/java/com/uas/search/console/b2b/schedule/DailyTaskService.java → search-console-b2b/src/main/java/com/uas/search/console/b2b/schedule/service/DailyTaskService.java

@@ -1,4 +1,4 @@
-package com.uas.search.console.b2b.schedule;
+package com.uas.search.console.b2b.schedule.service;
 
 import java.util.List;
 

+ 2 - 1
search-console-b2b/src/main/java/com/uas/search/console/b2b/schedule/DailyTaskServiceImpl.java → search-console-b2b/src/main/java/com/uas/search/console/b2b/schedule/service/impl/DailyTaskServiceImpl.java

@@ -1,4 +1,4 @@
-package com.uas.search.console.b2b.schedule;
+package com.uas.search.console.b2b.schedule.service.impl;
 
 import java.io.FileWriter;
 import java.io.IOException;
@@ -21,6 +21,7 @@ import com.uas.search.b2b.exception.SearchException;
 import com.uas.search.console.b2b.core.util.PathUtils;
 import com.uas.search.console.b2b.schedule.model.DailyTaskInformation;
 import com.uas.search.console.b2b.schedule.model.DailyTaskLog;
+import com.uas.search.console.b2b.schedule.service.DailyTaskService;
 
 /**
  * 管理定时任务

+ 4 - 1
search-console-b2b/src/main/java/com/uas/search/console/b2b/service/PurchaseInquiryMouldSimpleInfoService.java

@@ -1,5 +1,7 @@
 package com.uas.search.console.b2b.service;
 
+import com.uas.search.console.b2b.schedule.model.DailyTaskInformation;
+
 /**
  * @author sunyj
  * @since 2016年12月12日 下午4:25:54
@@ -20,6 +22,7 @@ public interface PurchaseInquiryMouldSimpleInfoService {
 	 *            任务时间:分钟
 	 * @param second
 	 *            任务时间:秒
+	 * @return
 	 */
-	public void startUpdateOverdueDailyTask(Integer hour, Integer minute, Integer second);
+	public DailyTaskInformation startUpdateOverdueDailyTask(Integer hour, Integer minute, Integer second);
 }

+ 3 - 2
search-console-b2b/src/main/java/com/uas/search/console/b2b/service/impl/PurchaseInquiryMouldSimpleInfoServiceImpl.java

@@ -17,9 +17,9 @@ import com.uas.search.b2b.model.SPage;
 import com.uas.search.b2b.service.SearchService.Table_name;
 import com.uas.search.console.b2b.core.util.ContextUtils;
 import com.uas.search.console.b2b.model.PurchaseInquiryMouldSimpleInfo;
-import com.uas.search.console.b2b.schedule.DailyTaskService;
 import com.uas.search.console.b2b.schedule.model.DailyTaskInformation;
 import com.uas.search.console.b2b.schedule.model.DailyTaskLog;
+import com.uas.search.console.b2b.schedule.service.DailyTaskService;
 import com.uas.search.console.b2b.service.IndexService;
 import com.uas.search.console.b2b.service.InnerSearchService;
 import com.uas.search.console.b2b.service.PurchaseInquiryMouldSimpleInfoService;
@@ -111,7 +111,7 @@ public class PurchaseInquiryMouldSimpleInfoServiceImpl implements PurchaseInquir
 	}
 
 	@Override
-	public void startUpdateOverdueDailyTask(Integer hour, Integer minute, Integer second) {
+	public DailyTaskInformation startUpdateOverdueDailyTask(Integer hour, Integer minute, Integer second) {
 		if (hour == null || minute == null || second == null) {
 			throw new NullPointerException();
 		}
@@ -130,6 +130,7 @@ public class PurchaseInquiryMouldSimpleInfoServiceImpl implements PurchaseInquir
 			}
 		});
 		dailyTaskService.newDailyTask(dailyTaskInformation);
+		return dailyTaskInformation;
 	}
 
 }

+ 9 - 1
search-console-b2b/src/main/resources/bootstrap.yml

@@ -25,4 +25,12 @@ security:
   password: select111***
   role: ADMIN
  ignored:
-  - /static/**
+  - /static/**
+  
+schedule:
+ daily:
+  auto-start: true
+  time:
+   hour: 3
+   minute: 0
+   second: 0