|
|
|
@ -12,20 +12,26 @@ import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* job registry helper
|
|
|
|
|
* job registry instance
|
|
|
|
|
* @author xuxueli 2016-10-02 19:10:24
|
|
|
|
|
*/
|
|
|
|
|
public class JobRegistryHelper {
|
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(JobRegistryHelper.class);
|
|
|
|
|
|
|
|
|
|
private static JobRegistryHelper helper = new JobRegistryHelper();
|
|
|
|
|
private static JobRegistryHelper instance = new JobRegistryHelper();
|
|
|
|
|
public static JobRegistryHelper getInstance(){
|
|
|
|
|
return instance;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private ConcurrentHashMap<String, List<String>> registMap = new ConcurrentHashMap<String, List<String>>();
|
|
|
|
|
|
|
|
|
|
public JobRegistryHelper(){
|
|
|
|
|
Thread registryThread = new Thread(new Runnable() {
|
|
|
|
|
private Thread registryThread;
|
|
|
|
|
private boolean toStop = false;
|
|
|
|
|
public void start(){
|
|
|
|
|
registryThread = new Thread(new Runnable() {
|
|
|
|
|
@Override
|
|
|
|
|
public void run() {
|
|
|
|
|
while (true) {
|
|
|
|
|
while (!toStop) {
|
|
|
|
|
try {
|
|
|
|
|
// registry admin
|
|
|
|
|
int ret = XxlJobDynamicScheduler.xxlJobRegistryDao.registryUpdate(RegistHelper.RegistType.ADMIN.name(), RegistHelper.RegistType.ADMIN.name(), XxlJobDynamicScheduler.getCallbackAddress());
|
|
|
|
@ -50,19 +56,23 @@ public class JobRegistryHelper {
|
|
|
|
|
}
|
|
|
|
|
registMap = temp;
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
logger.error("job registry helper error:{}", e);
|
|
|
|
|
logger.error("job registry instance error:{}", e);
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
TimeUnit.SECONDS.sleep(RegistHelper.TIMEOUT);
|
|
|
|
|
} catch (InterruptedException e) {
|
|
|
|
|
logger.error("job registry helper error:{}", e);
|
|
|
|
|
logger.error("job registry instance error:{}", e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
registryThread.setDaemon(true);
|
|
|
|
|
registryThread.start();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void stop(){
|
|
|
|
|
toStop = true;
|
|
|
|
|
//registryThread.interrupt();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static String makeGroupKey(String registryGroup, String registryKey){
|
|
|
|
@ -71,7 +81,7 @@ public class JobRegistryHelper {
|
|
|
|
|
|
|
|
|
|
public static List<String> discover(String registryGroup, String registryKey){
|
|
|
|
|
String groupKey = makeGroupKey(registryGroup, registryKey);
|
|
|
|
|
return helper.registMap.get(groupKey);
|
|
|
|
|
return instance.registMap.get(groupKey);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|