package com.sohu.cache.schedule.jobs;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.SchedulerContext;
import org.quartz.SchedulerException;
import org.springframework.context.ApplicationContext;
import com.sohu.cache.machine.MachineCenter;
import com.sohu.cache.util.ConstUtils;
/**
* 监控机器的状态信息的job
*
* User: lingguo
* Date: 14-7-2
*/
public class MachineMonitorJob extends CacheBaseJob {
@Override
public void action(JobExecutionContext context) {
try {
JobDataMap dataMap = context.getMergedJobDataMap();
String ip = dataMap.getString(ConstUtils.HOST_KEY);
long hostId = dataMap.getLong(ConstUtils.HOST_ID_KEY);
SchedulerContext schedulerContext = context.getScheduler().getContext();
ApplicationContext applicationContext = (ApplicationContext) schedulerContext.get(APPLICATION_CONTEXT_KEY);
MachineCenter machineCenter = applicationContext.getBean("machineCenter", MachineCenter.class);
machineCenter.asyncMonitorMachineStats(hostId, ip);
} catch (SchedulerException e) {
logger.error(e.getMessage(), e);
}
}
}