mar*_*ami 9 oracle time monitoring plsql cronexpression
我正在编写监控软件,其中大部分逻辑都在Oracle databasen和pl/sql中.
当我的监控被调用时,它应该警告问题.例如,它应警告问题,如果
1.在星期五22:00至23:00每小时
运行少于2次操作.在1月31日的每分钟运行少于5次. 22:00-23:00
3.从10:00到12:00,每天每分钟操作不到3次如果我的监控在1月31日22:30召唤,我应该将我的操作号码与5.
4.如果操作少于5次,则每分钟从星期五22:00到星期一15:00
我在考虑用数据库中的cron表达式格式保存数据周期.在这种情况下,我必须将SYSDATE(监视函数的当前调用日期)与保存在数据库中的cron表达式进行比较.
我的问题:
1.如何判断SYSDATE是否属于cron表达式?
2.在这种情况下使用cron表达式是否正确?你能否建议任何其他节省时间的方法.
这取决于您想要多少灵活性。对于您提供的示例,这样的结构就足够了:
CREATE TABLE monitoring_periods (
id INTEGER NOT NULL PRIMARY KEY,
monit_month VARCHAR2(2),
monit_day VARCHAR(2),
monit_day_of_week VARCHAR(3),
monit_time_from INTERVAL DAY TO SECOND,
monit_time_to INTERVAL DAY TO SECOND,
required_ops INTEGER
);
Run Code Online (Sandbox Code Playgroud)
以下是一些存储周期并对照 sysdate 进行检查的示例。我会避免将 cron 表达式字面地存储为字符串,因为它需要在查询时对其进行解析。但是,您的表达式越复杂(类似于“5 4,15,22 */2 * 1-5”),存储它的结构就越复杂 - 您需要仔细考虑您的要求。
| 归档时间: |
|
| 查看次数: |
1063 次 |
| 最近记录: |