ThisApplication.java 4.5 KB
Newer Older
caixiangyi's avatar
caixiangyi 已提交
1 2
package com.x.program.center;

R
update  
roo00 已提交
3 4 5 6
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
caixiangyi's avatar
caixiangyi 已提交
7

8 9 10
import com.google.gson.internal.LinkedTreeMap;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.logger.LoggerFactory;
Z
zhourui 已提交
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
import com.x.program.center.schedule.Area;
import com.x.program.center.schedule.Cleanup;
import com.x.program.center.schedule.CleanupCode;
import com.x.program.center.schedule.CollectLog;
import com.x.program.center.schedule.CollectMarket;
import com.x.program.center.schedule.CollectPerson;
import com.x.program.center.schedule.DingdingSyncOrganization;
import com.x.program.center.schedule.DingdingSyncOrganizationTrigger;
import com.x.program.center.schedule.FireSchedule;
import com.x.program.center.schedule.QiyeweixinSyncOrganization;
import com.x.program.center.schedule.QiyeweixinSyncOrganizationTrigger;
import com.x.program.center.schedule.RefreshApplications;
import com.x.program.center.schedule.TriggerAgent;
import com.x.program.center.schedule.WeLinkSyncOrganization;
import com.x.program.center.schedule.WeLinkSyncOrganizationTrigger;
import com.x.program.center.schedule.ZhengwuDingdingSyncOrganization;
import com.x.program.center.schedule.ZhengwuDingdingSyncOrganizationTrigger;
28

caixiangyi's avatar
caixiangyi 已提交
29 30 31 32 33 34 35 36
public class ThisApplication {

	protected static Context context;

	public static Context context() {
		return context;
	}

R
roo00 已提交
37
	public static CenterQueue centerQueue = new CenterQueue();
caixiangyi's avatar
caixiangyi 已提交
38

Z
zhourui 已提交
39
	public static LogQueue logQueue = new LogQueue();
caixiangyi's avatar
caixiangyi 已提交
40 41 42

	public static List<Object> dingdingSyncOrganizationCallbackRequest = new ArrayList<>();

F
fancy 已提交
43 44
	public static List<Object> weLinkSyncOrganizationCallbackRequest = new ArrayList<>();

caixiangyi's avatar
caixiangyi 已提交
45 46 47 48
	public static List<Object> zhengwuDingdingSyncOrganizationCallbackRequest = new ArrayList<>();

	public static List<Object> qiyeweixinSyncOrganizationCallbackRequest = new ArrayList<>();

R
update  
roo00 已提交
49 50
	public static Map<String, Map<String, LinkedTreeMap>> metricsReportMap = new ConcurrentHashMap<>();

caixiangyi's avatar
caixiangyi 已提交
51 52
	public static void init() {
		try {
R
roo00 已提交
53
			LoggerFactory.setLevel(Config.logLevel().x_program_center());
R
roo00 已提交
54 55
			/* 20190927新报告机制 */
			context().startQueue(centerQueue);
caixiangyi's avatar
caixiangyi 已提交
56 57 58
			context().startQueue(logQueue);

			/* 政务钉钉拉入同步 */
R
roo00 已提交
59 60
			if (Config.zhengwuDingding().getEnable()) {
				/* 启动同步任务 */
R
roo00 已提交
61
				context().scheduleLocal(ZhengwuDingdingSyncOrganization.class, Config.zhengwuDingding().getSyncCron());
R
roo00 已提交
62 63 64 65 66 67
				/* 添加一个强制同步任务 */
				context().scheduleLocal(ZhengwuDingdingSyncOrganizationTrigger.class,
						Config.zhengwuDingding().getForceSyncCron());
			}
			/* 企业微信拉入同步 */
			if (Config.qiyeweixin().getEnable()) {
caixiangyi's avatar
caixiangyi 已提交
68
				/* 启动同步任务 */
R
roo00 已提交
69
				context().scheduleLocal(QiyeweixinSyncOrganization.class, Config.qiyeweixin().getSyncCron());
caixiangyi's avatar
caixiangyi 已提交
70
				/* 添加一个强制同步任务 */
R
roo00 已提交
71 72 73 74 75 76 77 78 79
				context().scheduleLocal(QiyeweixinSyncOrganizationTrigger.class,
						Config.qiyeweixin().getForceSyncCron());
			}
			/* 钉钉同步 */
			if (Config.dingding().getEnable()) {
				/* 启动同步任务 */
				context().scheduleLocal(DingdingSyncOrganization.class, Config.dingding().getSyncCron());
				/* 添加一个强制同步任务 */
				context().scheduleLocal(DingdingSyncOrganizationTrigger.class, Config.dingding().getForceSyncCron());
caixiangyi's avatar
caixiangyi 已提交
80
			}
F
fancy 已提交
81 82 83 84 85 86 87 88
			/* WeLink同步 */
			if (Config.weLink().getEnable()) {
				/* 启动同步任务 */
				context().scheduleLocal(WeLinkSyncOrganization.class, Config.weLink().getSyncCron());
				/* 添加一个强制同步任务 */
				context().scheduleLocal(WeLinkSyncOrganizationTrigger.class, Config.weLink().getForceSyncCron());
			}

R
roo00 已提交
89 90
			context().scheduleLocal(RefreshApplications.class, CenterQueue.REFRESHAPPLICATIONSINTERVAL,
					CenterQueue.REFRESHAPPLICATIONSINTERVAL);
91 92
			// 运行间隔由300秒缩减到120秒
			context().scheduleLocal(FireSchedule.class, 180, 120);
caixiangyi's avatar
caixiangyi 已提交
93
			context().scheduleLocal(CleanupCode.class, 10, 60 * 30);
Z
zhourui 已提交
94
			context().scheduleLocal(Cleanup.class, 10, 60 * 30);
caixiangyi's avatar
caixiangyi 已提交
95
			context().scheduleLocal(CollectPerson.class, 10, 60 * 30);
96
			context().scheduleLocal(CollectMarket.class, 10, 60 * 60 * 6);
caixiangyi's avatar
caixiangyi 已提交
97
			context().scheduleLocal(CollectLog.class, 10, 60 * 30);
98 99
			// 运行间隔由60秒缩减到30秒
			context().scheduleLocal(TriggerAgent.class, 150, 30);
R
roo00 已提交
100
			/* 行政区域每周更新一次 */
101
			context().scheduleLocal(Area.class, 300, 60 * 60 * 24 * 7);
caixiangyi's avatar
caixiangyi 已提交
102 103 104 105 106 107
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void destroy() {
R
roo00 已提交
108 109 110 111 112 113
		try {
			centerQueue.stop();
			logQueue.stop();
		} catch (Exception e) {
			e.printStackTrace();
		}
caixiangyi's avatar
caixiangyi 已提交
114 115 116
	}

}