提交 832124a4 编写于 作者: Y youyong205

modify the project update task

上级 3e995427
......@@ -24,7 +24,6 @@ public class StateDelegate implements ReportDelegate<StateReport> {
@Inject
private ReportBucketManager m_bucketManager;
@Override
public void afterLoad(Map<String, StateReport> reports) {
}
......@@ -50,6 +49,7 @@ public class StateDelegate implements ReportDelegate<StateReport> {
m_taskManager.createTask(startTime, domain, StateAnalyzer.ID, TaskProlicy.ALL);
m_taskManager.createTask(startTime, domain, Constants.APP_DATABASE_PRUNER, TaskProlicy.DAILY);
m_taskManager.createTask(startTime, domain, Constants.CMDB, TaskProlicy.HOULY);
m_taskManager.createTask(startTime, domain, Constants.REPORT_NET_TOPOLOGY, TaskProlicy.HOULY);
m_taskManager.createTask(startTime, domain, Constants.REPORT_ALERT, TaskProlicy.ALL);
m_taskManager.createTask(startTime, domain, Constants.REPORT_BUG, TaskProlicy.ALL);
......
......@@ -71,4 +71,6 @@ public class Constants {
public static final String REPORT_SYSTEM = "system";
public static final String CMDB = "cmdb";
}
......@@ -24,7 +24,6 @@ import com.dianping.cat.report.task.alert.thirdParty.ThirdPartyAlert;
import com.dianping.cat.report.task.alert.thirdParty.ThirdPartyAlertBuilder;
import com.dianping.cat.report.task.alert.transaction.TransactionAlert;
import com.dianping.cat.report.task.alert.web.WebAlert;
import com.dianping.cat.report.task.project.ProjectUpdateTask;
import com.dianping.cat.report.view.DomainNavManager;
import com.dianping.cat.system.config.ConfigReloadTask;
......@@ -56,7 +55,6 @@ public class CatHomeModule extends AbstractModule {
ExceptionAlert exceptionAlert = ctx.lookup(ExceptionAlert.class);
FrontEndExceptionAlert frontEndExceptionAlert = ctx.lookup(FrontEndExceptionAlert.class);
HeartbeatAlert heartbeatAlert = ctx.lookup(HeartbeatAlert.class);
ProjectUpdateTask productUpdateTask = ctx.lookup(ProjectUpdateTask.class);
ThirdPartyAlert thirdPartyAlert = ctx.lookup(ThirdPartyAlert.class);
ThirdPartyAlertBuilder alertBuildingTask = ctx.lookup(ThirdPartyAlertBuilder.class);
AppAlert appAlert = ctx.lookup(AppAlert.class);
......@@ -70,7 +68,6 @@ public class CatHomeModule extends AbstractModule {
Threads.forGroup("cat").start(exceptionAlert);
Threads.forGroup("cat").start(frontEndExceptionAlert);
Threads.forGroup("cat").start(heartbeatAlert);
Threads.forGroup("cat").start(productUpdateTask);
Threads.forGroup("cat").start(thirdPartyAlert);
Threads.forGroup("cat").start(alertBuildingTask);
Threads.forGroup("cat").start(appAlert);
......
......@@ -51,7 +51,7 @@ import com.dianping.cat.report.service.ReportServiceManager;
import com.dianping.cat.report.service.app.AppDataService;
import com.dianping.cat.report.service.app.AppSpeedService;
import com.dianping.cat.report.task.alert.AlertInfo;
import com.dianping.cat.report.task.project.ProjectUpdateTask;
import com.dianping.cat.report.task.cmdb.ProjectUpdateTask;
import com.dianping.cat.report.view.DomainNavManager;
import com.dianping.cat.service.HostinfoService;
import com.dianping.cat.service.IpService;
......
......@@ -58,13 +58,6 @@ import com.dianping.cat.report.page.model.transaction.CompositeTransactionServic
import com.dianping.cat.report.page.model.transaction.HistoricalTransactionService;
import com.dianping.cat.report.page.model.transaction.LocalTransactionService;
import com.dianping.cat.report.service.ReportServiceManager;
import com.dianping.cat.report.task.cached.CachedReportTask;
import com.dianping.cat.report.task.cross.CrossReportBuilder;
import com.dianping.cat.report.task.event.EventReportBuilder;
import com.dianping.cat.report.task.matrix.MatrixReportBuilder;
import com.dianping.cat.report.task.problem.ProblemReportBuilder;
import com.dianping.cat.report.task.spi.TaskBuilder;
import com.dianping.cat.report.task.transaction.TransactionReportBuilder;
import com.dianping.cat.storage.message.MessageBucketManager;
import com.dianping.cat.storage.report.ReportBucketManager;
......@@ -166,13 +159,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator {
.req(MessageBucketManager.class, HdfsMessageBucketManager.ID) //
.req(MessageCodec.class, HtmlMessageCodec.ID, "m_html") //
.req(MessageCodec.class, WaterfallMessageCodec.ID, "m_waterfall").req(ServerConfigManager.class));
all.add(C(CachedReportTask.class).req(ReportServiceManager.class, ServerConfigManager.class)
.req(TaskBuilder.class, TransactionReportBuilder.ID, "m_transactionReportBuilder")
.req(TaskBuilder.class, EventReportBuilder.ID, "m_eventReportBuilder")
.req(TaskBuilder.class, ProblemReportBuilder.ID, "m_problemReportBuilder")
.req(TaskBuilder.class, CrossReportBuilder.ID, "m_crossReportBuilder")
.req(TaskBuilder.class, MatrixReportBuilder.ID, "m_matrixReportBuilder"));
return all;
}
}
......@@ -43,6 +43,8 @@ import com.dianping.cat.report.task.alert.sender.sender.SenderManager;
import com.dianping.cat.report.task.bug.BugReportBuilder;
import com.dianping.cat.report.task.cached.CachedReportBuilder;
import com.dianping.cat.report.task.cached.CachedReportTask;
import com.dianping.cat.report.task.cmdb.CmdbInfoReloadBuilder;
import com.dianping.cat.report.task.cmdb.ProjectUpdateTask;
import com.dianping.cat.report.task.cross.CrossReportBuilder;
import com.dianping.cat.report.task.database.AppDatabasePruner;
import com.dianping.cat.report.task.dependency.DependencyReportBuilder;
......@@ -172,6 +174,8 @@ public class TaskComponentConfigurator extends AbstractResourceConfigurator {
ProductLineConfigManager.class, CachedMetricReportService.class));
all.add(C(TaskBuilder.class, CachedReportBuilder.ID, CachedReportBuilder.class).req(CachedReportTask.class));
all.add(C(TaskBuilder.class, CmdbInfoReloadBuilder.ID, CmdbInfoReloadBuilder.class).req(ProjectUpdateTask.class));
all.add(C(CapacityUpdateStatusManager.class).req(OverloadDao.class, ConfigDao.class));
......@@ -218,6 +222,13 @@ public class TaskComponentConfigurator extends AbstractResourceConfigurator {
AppSpeedDataDao.class, AppSpeedConfigManager.class, AppConfigManager.class));
all.add(C(ReportFacade.class));
all.add(C(CachedReportTask.class).req(ReportServiceManager.class, ServerConfigManager.class)
.req(TaskBuilder.class, TransactionReportBuilder.ID, "m_transactionReportBuilder")
.req(TaskBuilder.class, EventReportBuilder.ID, "m_eventReportBuilder")
.req(TaskBuilder.class, ProblemReportBuilder.ID, "m_problemReportBuilder")
.req(TaskBuilder.class, CrossReportBuilder.ID, "m_crossReportBuilder")
.req(TaskBuilder.class, MatrixReportBuilder.ID, "m_matrixReportBuilder"));
return all;
}
......
......@@ -13,11 +13,11 @@ public class CachedReportBuilder implements TaskBuilder {
public static final String ID = Constants.CACHED_REPORT;
@Inject
private CachedReportTask m_task;
private CachedReportTask m_cachedReportTask;
@Override
public boolean buildDailyTask(String name, String domain, Date period) {
Threads.forGroup(Constants.CAT).start(m_task);
Threads.forGroup(Constants.CAT).start(m_cachedReportTask);
return true;
}
......
package com.dianping.cat.report.task.cmdb;
import java.util.Date;
import org.unidal.helper.Threads;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.Constants;
import com.dianping.cat.report.task.spi.TaskBuilder;
public class CmdbInfoReloadBuilder implements TaskBuilder {
public static final String ID = Constants.CMDB;
@Inject
private ProjectUpdateTask m_projectUpdateTask;
@Override
public boolean buildDailyTask(String name, String domain, Date period) {
throw new RuntimeException("router builder don't support hourly task");
}
@Override
public boolean buildHourlyTask(String name, String domain, Date period) {
Threads.forGroup(Constants.CAT).start(m_projectUpdateTask);
return true;
}
@Override
public boolean buildMonthlyTask(String name, String domain, Date period) {
throw new RuntimeException("router builder don't support monthly task");
}
@Override
public boolean buildWeeklyTask(String name, String domain, Date period) {
throw new RuntimeException("router builder don't support weekly task");
}
}
package com.dianping.cat.report.task.project;
package com.dianping.cat.report.task.cmdb;
import java.io.InputStream;
import java.util.ArrayList;
......@@ -43,8 +43,6 @@ public class ProjectUpdateTask implements Task, LogEnabled {
protected Logger m_logger;
private static final long DURATION = 60 * 60 * 1000L;
private static final String CMDB_DOMAIN_URL = "http://api.cmdb.dp/api/v0.1/projects/s?private_ip=%s";
private static final String CMDB_INFO_URL = "http://api.cmdb.dp/api/v0.1/projects/%s";
......@@ -110,6 +108,19 @@ public class ProjectUpdateTask implements Task, LogEnabled {
return null;
}
private String parseInfo(String content, String jsonName, String attrName) throws Exception {
JsonObject json = new JsonObject(content).getJSONObject(jsonName);
if (json != null) {
Object obj = json.get(attrName);
if (obj != null) {
return obj.toString();
}
}
return null;
}
private Map<String, String> parseInfos(String content) throws Exception {
Map<String, String> infosMap = new HashMap<String, String>();
JsonObject project = new JsonObject(content).getJSONObject("project");
......@@ -149,19 +160,6 @@ public class ProjectUpdateTask implements Task, LogEnabled {
return infosMap;
}
private String parseInfo(String content, String jsonName, String attrName) throws Exception {
JsonObject json = new JsonObject(content).getJSONObject(jsonName);
if (json != null) {
Object obj = json.get(attrName);
if (obj != null) {
return obj.toString();
}
}
return null;
}
private String queryCmdbName(List<String> ips) {
Map<String, Integer> nameCountMap = new HashMap<String, Integer>();
......@@ -250,7 +248,7 @@ public class ProjectUpdateTask implements Task, LogEnabled {
t.addData(content);
return parseInfos(content.trim());
} catch (Exception e) {
//ignore
// ignore
} finally {
t.complete();
}
......@@ -267,7 +265,7 @@ public class ProjectUpdateTask implements Task, LogEnabled {
t.addData(content);
return parseInfo(content, jsonName, attrName);
} catch (Exception e) {
//ignore
// ignore
} finally {
t.complete();
}
......@@ -276,39 +274,24 @@ public class ProjectUpdateTask implements Task, LogEnabled {
@Override
public void run() {
boolean active = true;
while (active) {
long startMill = System.currentTimeMillis();
Transaction t1 = Cat.newTransaction("CMDB", "UpdateHostname");
try {
updateHostNameInfo();
t1.setStatus(Transaction.SUCCESS);
} catch (Exception e) {
t1.setStatus(e);
} finally {
t1.complete();
}
Transaction t2 = Cat.newTransaction("CMDB", "UpdateProjectInfo");
try {
updateProjectInfo();
t2.setStatus(Transaction.SUCCESS);
} catch (Exception e) {
t2.setStatus(e);
} finally {
t2.complete();
}
try {
long executeMills = System.currentTimeMillis() - startMill;
Transaction t1 = Cat.newTransaction("CMDB", "UpdateHostname");
try {
updateHostNameInfo();
t1.setStatus(Transaction.SUCCESS);
} catch (Exception e) {
t1.setStatus(e);
} finally {
t1.complete();
}
if (executeMills < DURATION) {
Thread.sleep(DURATION - executeMills);
}
} catch (InterruptedException e) {
active = false;
}
Transaction t2 = Cat.newTransaction("CMDB", "UpdateProjectInfo");
try {
updateProjectInfo();
t2.setStatus(Transaction.SUCCESS);
} catch (Exception e) {
t2.setStatus(e);
} finally {
t2.complete();
}
}
......
......@@ -40,8 +40,11 @@ public class DomainNavManager implements Task, Initializable {
String projectLine = DEFAULT;
if (project != null) {
department = project.getBu() == null ? DEFAULT : project.getBu();
projectLine = project.getCmdbProductline() == null ? DEFAULT : project.getCmdbProductline();
String bu = project.getBu();
String productline = project.getCmdbProductline();
department = bu == null ? DEFAULT : bu;
projectLine = productline == null ? DEFAULT : productline;
}
Department temp = result.get(department);
......
......@@ -98,8 +98,8 @@
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.project.ProjectUpdateTask</role>
<implementation>com.dianping.cat.report.task.project.ProjectUpdateTask</implementation>
<role>com.dianping.cat.report.task.cmdb.ProjectUpdateTask</role>
<implementation>com.dianping.cat.report.task.cmdb.ProjectUpdateTask</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.service.ProjectService</role>
......@@ -1373,6 +1373,16 @@
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.spi.TaskBuilder</role>
<role-hint>cmdb</role-hint>
<implementation>com.dianping.cat.report.task.cmdb.CmdbInfoReloadBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.task.cmdb.ProjectUpdateTask</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.overload.CapacityUpdateStatusManager</role>
<implementation>com.dianping.cat.report.task.overload.CapacityUpdateStatusManager</implementation>
......@@ -1611,6 +1621,43 @@
<role>com.dianping.cat.report.task.spi.ReportFacade</role>
<implementation>com.dianping.cat.report.task.spi.ReportFacade</implementation>
</component>
<component>
<role>com.dianping.cat.report.task.cached.CachedReportTask</role>
<implementation>com.dianping.cat.report.task.cached.CachedReportTask</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportServiceManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.spi.TaskBuilder</role>
<role-hint>transaction</role-hint>
<field-name>m_transactionReportBuilder</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.spi.TaskBuilder</role>
<role-hint>event</role-hint>
<field-name>m_eventReportBuilder</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.spi.TaskBuilder</role>
<role-hint>problem</role-hint>
<field-name>m_problemReportBuilder</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.spi.TaskBuilder</role>
<role-hint>cross</role-hint>
<field-name>m_crossReportBuilder</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.spi.TaskBuilder</role>
<role-hint>matrix</role-hint>
<field-name>m_matrixReportBuilder</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>transaction-local</role-hint>
......@@ -2170,43 +2217,6 @@
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.cached.CachedReportTask</role>
<implementation>com.dianping.cat.report.task.cached.CachedReportTask</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportServiceManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.spi.TaskBuilder</role>
<role-hint>transaction</role-hint>
<field-name>m_transactionReportBuilder</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.spi.TaskBuilder</role>
<role-hint>event</role-hint>
<field-name>m_eventReportBuilder</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.spi.TaskBuilder</role>
<role-hint>problem</role-hint>
<field-name>m_problemReportBuilder</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.spi.TaskBuilder</role>
<role-hint>cross</role-hint>
<field-name>m_crossReportBuilder</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.spi.TaskBuilder</role>
<role-hint>matrix</role-hint>
<field-name>m_matrixReportBuilder</field-name>
</requirement>
</requirements>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>app-command-data</role-hint>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册