1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package com.xxl.job.admin.core.alarm;
- import com.xxl.job.admin.core.model.XxlJobInfo;
- import com.xxl.job.admin.core.model.XxlJobLog;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.BeansException;
- import org.springframework.beans.factory.InitializingBean;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.ApplicationContextAware;
- import org.springframework.stereotype.Component;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- @Component
- public class JobAlarmer implements ApplicationContextAware, InitializingBean {
- private static Logger logger = LoggerFactory.getLogger(JobAlarmer.class);
- private ApplicationContext applicationContext;
- private List<JobAlarm> jobAlarmList;
- @Override
- public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
- this.applicationContext = applicationContext;
- }
- @Override
- public void afterPropertiesSet() throws Exception {
- Map<String, JobAlarm> serviceBeanMap = applicationContext.getBeansOfType(JobAlarm.class);
- if (serviceBeanMap != null && serviceBeanMap.size() > 0) {
- jobAlarmList = new ArrayList<JobAlarm>(serviceBeanMap.values());
- }
- }
- /**
- * job alarm
- *
- * @param info
- * @param jobLog
- * @return
- */
- public boolean alarm(XxlJobInfo info, XxlJobLog jobLog) {
- boolean result = false;
- if (jobAlarmList!=null && jobAlarmList.size()>0) {
- result = true; // success means all-success
- for (JobAlarm alarm: jobAlarmList) {
- boolean resultItem = false;
- try {
- resultItem = alarm.doAlarm(info, jobLog);
- } catch (Exception e) {
- logger.error(e.getMessage(), e);
- }
- if (!resultItem) {
- result = false;
- }
- }
- }
- return result;
- }
- }
|