Created
December 5, 2019 03:19
-
-
Save dennischen/08f5cdb77575a9d024f9d6a89925735d to your computer and use it in GitHub Desktop.
Yingzhun Gear Scheduler Hint
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class GearRuleExaminationListener implements MessageListener { | |
@EJB | |
RuleActionSender actionSender; | |
public void onMessage(Message message) { | |
try { | |
TextMessage textMessage = (TextMessage) message; | |
String body = textMessage.getText(); | |
GearRuleExaminationParameter p = Jsons.fromJson(body, GearRuleExaminationParameter.class); | |
onMessage(p); | |
} catch (Exception e) { | |
logger.error(e.getMessage(),e); | |
} | |
} | |
private void onMessage(GearRuleExaminationParameter p) throws Exception{ | |
... | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class HourlyReportTimer extends Log2ReportTimer{ | |
protected void doTimeout() { | |
generalReportTimeout(ReportUnit.HOUR,GearReport.GMT0, getEnabledLocationAndType()); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MonitorQueryListener implements MessageListener { | |
public void onMessage(Message message) { | |
try { | |
TextMessage textMessage = (TextMessage) message; | |
String body = textMessage.getText(); | |
MonitorQueryParameter p = Jsons.fromJson(body, MonitorQueryParameter.class); | |
doQuery(p); | |
} catch (Exception e) { | |
logger.error(e.getMessage(), e); | |
LogServices.critial(LogServices.USER_SYSTEM, getClass().getSimpleName(), null, e.getClass() | |
.getSimpleName(), e.getMessage()); | |
} | |
} | |
private void doQuery(MonitorQueryParameter p) { | |
... | |
} | |
protected void save(Recorder recorder, String location, GearLog log) { | |
recorder.saveLog(location, log); | |
} | |
protected GearLog getLast(Recorder recorder, String location) { | |
return recorder.getLastLog(location, System.currentTimeMillis(), compareLimitInMinute * 60000); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MonitorQueryTimer extends AbstractTimerBean{ | |
@EJB | |
MonitorQuerySender sender; | |
protected void doTimeout() { | |
GearMonitorService service = Services.getService(GearMonitorService.class); | |
for(MonitorParamInfo info:service.listEnabledMonitorParamInfo()){ | |
sender.send(new MonitorQueryParameter(info.getGearType(), info.getParams())); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class RuleExaminationTimer extends AbstractTimerBean{ | |
@EJB | |
private GearMonitorExaminationSender sender; | |
protected void doTimeout() { | |
GearMonitorService monitorService = Services.getService(GearMonitorService.class); | |
List<GearMonitor> monistors = monitorService.listEnabledMonitorByHasEnabledRules(); | |
for(GearMonitor monitor:monistors){ | |
sender.send(new GearMonitorExaminationParameter(monitor.getUuid())); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8" ?> | |
<config name="yingzhun-ejb" depends="yingzhun" > | |
<ejb> | |
<schedulers> | |
<scheduler name="MonitorQueryTimer"> | |
<jndi>java:app/yingzhun-ejb/MonitorQueryTimer</jndi> | |
<!-- start every 15s --> | |
<expression>0/15 * *</expression> | |
</scheduler> | |
<scheduler name="RuleExaminationTimer"> | |
<jndi>java:app/yingzhun-ejb/RuleExaminationTimer</jndi> | |
<!-- start every 30s --> | |
<expression>30 * *</expression> | |
</scheduler> | |
<scheduler name="HourlyReportTimer"> | |
<jndi>java:app/yingzhun-ejb/HourlyReportTimer</jndi> | |
<!-- | |
ScheduleExpression string with the order [second minute hour dayOfMonth month dayOfWeek year] and split by space | |
--> | |
<!-- start from every hour, minute 00, repeat every 15 min --> | |
<expression>0 0/15 *</expression> | |
</scheduler> | |
<scheduler name="DailyReportTimer"> | |
<jndi>java:app/yingzhun-ejb/DailyReportTimer</jndi> | |
<!-- start from every day, 1 am, repeat every 3 hour --> | |
<expression>0 0 1/3 *</expression> | |
</scheduler> | |
<scheduler name="MonthlyReportTimer"> | |
<jndi>java:app/yingzhun-ejb/MonthlyReportTimer</jndi> | |
<!-- start from every day 2 am --> | |
<expression>0 0 2 *</expression> | |
</scheduler> | |
</schedulers> | |
</ejb> | |
</config> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment