| 
									
										
										
										
											2016-10-19 17:08:07 -07:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2015-11-19 14:39:21 -08:00
										 |  |  |  * Copyright 2015 LinkedIn Corp. All rights reserved.
 | 
					
						
							|  |  |  |  *
 | 
					
						
							|  |  |  |  * Licensed under the Apache License, Version 2.0 (the "License");
 | 
					
						
							|  |  |  |  * you may not use this file except in compliance with the License.
 | 
					
						
							|  |  |  |  * You may obtain a copy of the License at
 | 
					
						
							|  |  |  |  *
 | 
					
						
							|  |  |  |  * http://www.apache.org/licenses/LICENSE-2.0
 | 
					
						
							|  |  |  |  *
 | 
					
						
							|  |  |  |  * Unless required by applicable law or agreed to in writing, software
 | 
					
						
							|  |  |  |  * distributed under the License is distributed on an "AS IS" BASIS,
 | 
					
						
							|  |  |  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
					
						
							|  |  |  |  */
 | 
					
						
							| 
									
										
										
										
											2016-10-19 17:08:07 -07:00
										 |  |  | package shared;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-06 18:04:38 -08:00
										 |  |  | import java.util.HashSet;
 | 
					
						
							| 
									
										
										
										
											2016-05-12 16:27:45 -07:00
										 |  |  | import java.util.List;
 | 
					
						
							| 
									
										
										
										
											2016-03-06 18:04:38 -08:00
										 |  |  | import java.util.Set;
 | 
					
						
							| 
									
										
										
										
											2015-11-19 14:39:21 -08:00
										 |  |  | import play.Application;
 | 
					
						
							|  |  |  | import play.GlobalSettings;
 | 
					
						
							|  |  |  | import play.Logger;
 | 
					
						
							| 
									
										
										
										
											2016-05-12 16:27:45 -07:00
										 |  |  | import play.Play;
 | 
					
						
							| 
									
										
										
										
											2015-11-19 14:39:21 -08:00
										 |  |  | import utils.SchedulerUtil;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * Created by zechen on 9/3/15.
 | 
					
						
							|  |  |  |  */
 | 
					
						
							|  |  |  | public class Global extends GlobalSettings {
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-12 16:27:45 -07:00
										 |  |  |   // the jobs id that allowed to run on this instance
 | 
					
						
							|  |  |  |   private static Set<Integer> whiteList;
 | 
					
						
							| 
									
										
										
										
											2016-03-06 18:04:38 -08:00
										 |  |  |   private static Set<Integer> currentRunningJob;
 | 
					
						
							| 
									
										
										
										
											2015-11-19 14:39:21 -08:00
										 |  |  |   @Override
 | 
					
						
							|  |  |  |   public void onStart(Application arg0) {
 | 
					
						
							|  |  |  |     Logger.info("on start---===");
 | 
					
						
							| 
									
										
										
										
											2016-05-12 16:27:45 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     List<Integer> whiteListList = Play.application().configuration().getIntList("scheduler.jobid.whitelist", null);
 | 
					
						
							|  |  |  |     if (whiteListList != null) {
 | 
					
						
							|  |  |  |       whiteList = new HashSet<>(whiteListList);
 | 
					
						
							|  |  |  |     } else {
 | 
					
						
							|  |  |  |       whiteList = null;
 | 
					
						
							|  |  |  |     }
 | 
					
						
							| 
									
										
										
										
											2015-11-19 14:39:21 -08:00
										 |  |  |     SchedulerUtil.start();
 | 
					
						
							| 
									
										
										
										
											2016-03-06 18:04:38 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     currentRunningJob = new HashSet<>();
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-12 16:27:45 -07:00
										 |  |  |   public static Set<Integer> getWhiteList() {
 | 
					
						
							|  |  |  |     return whiteList;
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-06 18:04:38 -08:00
										 |  |  |   public static Set<Integer> getCurrentRunningJob() {
 | 
					
						
							|  |  |  |     return currentRunningJob;
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   public static void setCurrentRunningJob(Set<Integer> currentRunningJob) {
 | 
					
						
							|  |  |  |     Global.currentRunningJob = currentRunningJob;
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   public static void removeRunningJob(int jobId) {
 | 
					
						
							|  |  |  |     if (currentRunningJob.contains(jobId)) {
 | 
					
						
							|  |  |  |       currentRunningJob.remove(jobId);
 | 
					
						
							|  |  |  |     }
 | 
					
						
							| 
									
										
										
										
											2015-11-19 14:39:21 -08:00
										 |  |  |   }
 | 
					
						
							|  |  |  | }
 |