Просмотр исходного кода

根据环境决定定时任务是否自启

sunyj 8 лет назад
Родитель
Сommit
a3757b4264

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

@@ -4,6 +4,9 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.NotSerializableException;
 import java.io.PrintStream;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -12,16 +15,87 @@ 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.model.PurchaseInquiryItemSimpleInfo;
+import com.uas.search.console.b2b.model.PurchaseInquiryMouldSimpleInfo;
+import com.uas.search.console.b2b.model.PurchaseTenderSimpleInfo;
+import com.uas.search.console.b2b.model.SaleQuotationSimpleInfo;
+import com.uas.search.console.b2b.schedule.model.TaskInformation;
+import com.uas.search.console.b2b.schedule.service.TaskService;
+import com.uas.search.console.b2b.service.UpdateVirtualColumnService;
+import com.uas.search.console.b2b.support.RealTimeUpdateMonitor;
+import com.uas.search.console.b2b.util.SearchConstants.DataSourceQualifier;
 
 @EnableTransactionManagement
 @EnableWebMvc
 @SpringBootApplication(scanBasePackages = "com.uas.search.console.b2b")
 @ImportResource({ "classpath:spring/dubbo.xml" })
 public class Application {
+
 	public static void main(String[] args) throws NotSerializableException, ClassNotFoundException, IOException {
 		System.setErr(new PrintStream(new FileOutputStream("logs/log.log", true)));
 		SpringApplication application = new SpringApplication(Application.class);
 		application.addListeners(new ContextUtils());
 		application.run(args);
+		SystemProperties systemProperties = ContextUtils.getBean(SystemProperties.class);
+		if (systemProperties.isTaskAutoStart()) {
+			startTask(systemProperties.getDailyTaskHour(), systemProperties.getDailyTaskMinute(),
+					systemProperties.getDailyTaskSecond());
+		}
+	}
+
+	/**
+	 * 开启定时任务
+	 * 
+	 * @param hour
+	 *            可为空
+	 * @param minute
+	 *            可为空
+	 * @param second
+	 *            可为空
+	 * @return 定时任务信息
+	 * @throws NotSerializableException
+	 * @throws ClassNotFoundException
+	 * @throws IOException
+	 */
+	public static List<TaskInformation> startTask(Integer hour, Integer minute, Integer second)
+			throws NotSerializableException, ClassNotFoundException, IOException {
+		UpdateVirtualColumnService updateVirtualColumnService = ContextUtils.getBean(UpdateVirtualColumnService.class);
+		// 需更新的虚拟列 定时更新采购询价单明细虚拟列索引
+		Map<String, Class<?>> purchaseInquiryItemFields = new HashMap<>();
+		purchaseInquiryItemFields.put("overdue", Short.class);
+		purchaseInquiryItemFields.put("invalid", Short.class);
+		updateVirtualColumnService.newDailyTask(PurchaseInquiryItemSimpleInfo.class, purchaseInquiryItemFields, hour,
+				minute, second);
+
+		// 定时更新主动报价单虚拟列索引
+		Map<String, Class<?>> saleQuotationFields = new HashMap<>();
+		saleQuotationFields.put("overdue", Short.class);
+		updateVirtualColumnService.newDailyTask(SaleQuotationSimpleInfo.class, saleQuotationFields, hour, minute,
+				second);
+
+		// 需更新的虚拟列 定时更新模具询价单虚拟列索引
+		Map<String, Class<?>> inquiryMouldFields = new HashMap<>();
+		inquiryMouldFields.put("overdue", Short.class);
+		updateVirtualColumnService.newDailyTask(PurchaseInquiryMouldSimpleInfo.class, inquiryMouldFields, hour, minute,
+				second);
+
+		// 定时更新招标单虚拟列索引
+		Map<String, Class<?>> purchaseTenderFields = new HashMap<>();
+		purchaseTenderFields.put("overdue", Short.class);
+		purchaseTenderFields.put("result", Short.class);
+		updateVirtualColumnService.newDailyTask(PurchaseTenderSimpleInfo.class, purchaseTenderFields, hour, minute,
+				second);
+
+		// 定时监控实时更新异常情况
+		new RealTimeUpdateMonitor(DataSourceQualifier.PLATFORMB2B_DATASOURCE).newTask();
+		new RealTimeUpdateMonitor(DataSourceQualifier.PLATFORMMANAGER_DATASOURCE).newTask();
+
+		// 开启定时任务
+		TaskService taskService = ContextUtils.getBean(TaskService.class);
+		if (!taskService.isStopped()) {
+			taskService.stop();
+		}
+		taskService.start();
+		return taskService.all();
 	}
 }

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

@@ -16,18 +16,12 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import com.alibaba.fastjson.JSONObject;
 import com.uas.search.b2b.service.SearchService.Table_name;
+import com.uas.search.console.b2b.Application;
 import com.uas.search.console.b2b.SystemProperties;
-import com.uas.search.console.b2b.core.util.ContextUtils;
-import com.uas.search.console.b2b.model.PurchaseInquiryItemSimpleInfo;
-import com.uas.search.console.b2b.model.PurchaseInquiryMouldSimpleInfo;
-import com.uas.search.console.b2b.model.PurchaseTenderSimpleInfo;
-import com.uas.search.console.b2b.model.SaleQuotationSimpleInfo;
 import com.uas.search.console.b2b.schedule.model.TaskInformation;
 import com.uas.search.console.b2b.schedule.service.TaskService;
 import com.uas.search.console.b2b.service.UpdateVirtualColumnService;
-import com.uas.search.console.b2b.support.RealTimeUpdateMonitor;
 import com.uas.search.console.b2b.util.ClassAndTableNameUtils;
-import com.uas.search.console.b2b.util.SearchConstants.DataSourceQualifier;
 
 @Controller
 @RequestMapping("/schedule")
@@ -114,20 +108,6 @@ public class ScheduleController {
 	@ResponseBody
 	public List<TaskInformation> init(Integer hour, Integer minute, Integer second)
 			throws NotSerializableException, ClassNotFoundException, IOException {
-		return startTask(hour, minute, second);
-	}
-
-	/**
-	 * 开启定时任务
-	 * 
-	 * @return
-	 * 
-	 * @throws IOException
-	 * @throws ClassNotFoundException
-	 * @throws NotSerializableException
-	 */
-	private List<TaskInformation> startTask(Integer hour, Integer minute, Integer second)
-			throws NotSerializableException, ClassNotFoundException, IOException {
 		if (hour == null) {
 			hour = systemProperties.getDailyTaskHour();
 		}
@@ -137,43 +117,6 @@ public class ScheduleController {
 		if (second == null) {
 			second = systemProperties.getDailyTaskSecond();
 		}
-		UpdateVirtualColumnService updateVirtualColumnService = ContextUtils.getBean(UpdateVirtualColumnService.class);
-		// 需更新的虚拟列 定时更新采购询价单明细虚拟列索引
-		Map<String, Class<?>> purchaseInquiryItemFields = new HashMap<>();
-		purchaseInquiryItemFields.put("overdue", Short.class);
-		purchaseInquiryItemFields.put("invalid", Short.class);
-		updateVirtualColumnService.newDailyTask(PurchaseInquiryItemSimpleInfo.class, purchaseInquiryItemFields, hour,
-				minute, second);
-
-		// 定时更新主动报价单虚拟列索引
-		Map<String, Class<?>> saleQuotationFields = new HashMap<>();
-		saleQuotationFields.put("overdue", Short.class);
-		updateVirtualColumnService.newDailyTask(SaleQuotationSimpleInfo.class, saleQuotationFields, hour, minute,
-				second);
-
-		// 需更新的虚拟列 定时更新模具询价单虚拟列索引
-		Map<String, Class<?>> inquiryMouldFields = new HashMap<>();
-		inquiryMouldFields.put("overdue", Short.class);
-		updateVirtualColumnService.newDailyTask(PurchaseInquiryMouldSimpleInfo.class, inquiryMouldFields, hour, minute,
-				second);
-
-		// 定时更新招标单虚拟列索引
-		Map<String, Class<?>> purchaseTenderFields = new HashMap<>();
-		purchaseTenderFields.put("overdue", Short.class);
-		purchaseTenderFields.put("result", Short.class);
-		updateVirtualColumnService.newDailyTask(PurchaseTenderSimpleInfo.class, purchaseTenderFields, hour, minute,
-				second);
-
-		// 定时监控实时更新异常情况
-		new RealTimeUpdateMonitor(DataSourceQualifier.PLATFORMB2B_DATASOURCE).newTask();
-		new RealTimeUpdateMonitor(DataSourceQualifier.PLATFORMMANAGER_DATASOURCE).newTask();
-
-		// 开启定时任务
-		TaskService taskService = ContextUtils.getBean(TaskService.class);
-		if (!taskService.isStopped()) {
-			taskService.stop();
-		}
-		taskService.start();
-		return taskService.all();
+		return Application.startTask(hour, minute, second);
 	}
 }

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

@@ -31,7 +31,6 @@ schedule:
    hour: 3
    minute: 0
    second: 0
- auto-start: true
    
 zk:
  url: zookeeper://10.10.100.11:2181