esper(4-3)-Non-Overlapping Context

语法

create context context_name 
start start_condition 
end end_condition

如:

// 9点到17点此context才可用(以引擎的时间为准)。如果事件进入的事件不在此范围内,则不受该context影响
create context NineToFive start (0, 9, *, *, *) end (0, 17, *, *, *)

 

例子

import com.espertech.esper.client.*;/*** @author yaoyuan2* @date 2019/3/26*/
public class NoOverLappingContextTest {public static void main(String[] args) {EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();EPAdministrator admin = epService.getEPAdministrator();EPRuntime runtime = epService.getEPRuntime();String start = StartEvent.class.getName();String end = EndEvent.class.getName();String other = OtherEvent.class.getName();// 以StartEvent事件作为开始条件,EndEvent事件作为结束条件String epl1 = "create context NoOverLapping start " + start + " end " + end;String epl2 = "context NoOverLapping select * from " + other;admin.createEPL(epl1);EPStatement state = admin.createEPL(epl2);state.addListener(new UpdateListener() {@Overridepublic void update(EventBean[] newEvents, EventBean[] oldEvents) {if (newEvents != null) {EventBean event = newEvents[0];System.out.println("Class:" + event.getUnderlying().getClass().getName() + ", id:" + event.get("id"));}}});StartEvent s = new StartEvent();System.out.println("sendEvent: StartEvent");runtime.sendEvent(s);OtherEvent o = new OtherEvent();o.setId(2);System.out.println("sendEvent: OtherEvent");runtime.sendEvent(o);EndEvent e = new EndEvent();System.out.println("sendEvent: EndEvent");runtime.sendEvent(e);OtherEvent o2 = new OtherEvent();o2.setId(4);System.out.println("sendEvent: OtherEvent");runtime.sendEvent(o2);}
}
class StartEvent
{
}class EndEvent
{
}
class OtherEvent
{private int id;public int getId(){return id;}public void setId(int id){this.id = id;}
}

输出

sendEvent: StartEvent
sendEvent: OtherEvent
Class:com.ebc.NoOverLappingContext.OtherEvent, id:2
sendEvent: EndEvent
sendEvent: OtherEvent

由此看出,在NoOverLapping这个Context下监控OtherEvent,必须是在StartEvent被触发才能监控到,所以在EndEvent发送后,再发送一个OtherEvent是不会触发Listener的。

 

转载于:https://www.cnblogs.com/yaoyuan2/p/10601598.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牢骚贴

如果你不是在科研机构工作,抑或你不是自己做自己的项目,那么或许你会有我一样的情况。 老总要的是效率、效率、效率。。。。。。还是效率。他不管你用了什么oo或者设计技巧,他要的是在最短的时间完成项目,至于这个项目的可维护性、…

11个实用的CSS学习工具

为什么80%的码农都做不了架构师?>>> 1. 盒子模型的幻灯片 通过3D转换效果产生的互动的幻灯片。按向左或向右箭头键切换,全屏观看会有更好的效果。 2. CSS Diner 通过一个简单的小游戏让你学习CSS selector,输入正确的selector来完…

linux什么用户什么任务,Linux 用户

查看所有用户cat /etc/passwd查看linux下用户组cat /etc/group用cat /etc/passwd |cut -f 1 -d :系统默认用户 http://zhidao.baidu.com/question/133424460Linux 用户user和用户组group管理 概念主要讲在Linux 系统中用户和用户组管理的概念,相关命令;对单用户多任…

使用字符缓冲流读取数据

package text;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException; public class Buff5 { public static void main(String[] args) {          BufferedReader bosnull;          try {//      …

Google 节日徽标全集 (1999-2009) (下)

这是 Google 节日徽标全集的第三部分,也是最后一部分,包含 Google 2006 至 2009 年 2 月全部节日徽标。需要指出的是,这些徽标均来自 Google 国际站点,也就是 www.google.com,Google 在众多本地站点上还有大量本土化的…

HBuilder:最快的Web开发IDE

HBuilder:最快的Web开发IDE http://www.csdn.net/article/2014-02-07/2818326-HBuilder-the-fastest-web-ide发表于2014-02-11 10:38| 26194次阅读| 来源CSDN| 59 条评论| 作者CSDN移动前端开发HBuilder数字天堂王安Web开发HTML5DCloud摘要:HBuilder是DC…

linux如何利用命令保存文件,如何在Linux中将命令输出保存到文件?

有时,Unix命令的输出可以使我们了解到这种情况的重要性,在这种情况下,我们想保存结果以供以后参考,在本文中,我们将看到如何将命令的输出保存到文件中。创建一个新文件可以使用>符号和新文件名来保存磁盘使用命令的…

Pycharm 项目无法导入自己写的模块(问题记录贴)

问题: 从外部导入一个Python项目后,发现包错误,如图: 解决步骤: 1.将目录下的"5-6——apriori.py"复制一份,重命名为”apriori.py"; 2.查资料知,pycharm不会将当前文…

Win2000/XP/2003路由制作之Nat共享上网

Win2000/XP/2003(必须SERVER(服务)版本的)ROUTEROS不会或则你的路由器突然坏了。紧急情况下,为了让老板的网吧正常营业,随手找个电脑就可以正常工作了。好吧。言归正传。NAT服务器软硬件准备俗话说“巧妇难…

Linux中的Interrupted system call错误

2019独角兽企业重金招聘Python工程师标准>>> 最近公司的一个项目,上线时候遇到了一些问题,服务跑一段时间后连接不上。 发现报了Interrupted system call这个错误引起的。 查了下资料,大致原因是系统繁忙处理不过来导致的。 根据网…

linux进程通信发送方式,Linux服务器编程——Linux系统编程之进程通信

进程通信又称IPCIPC方法方法:管道(最简单)信号(开销最小)共享映射区/共享内存(无血缘关系)本地套接字(最稳定)Linux文件类型: - 文件d 目录l 符号链接s 套接字 伪文件b 块设备 伪文件c字符设备 伪文件p管道 …

EMOS 如何停止反病毒和防垃圾邮件功能

1、修改main.cf配置文件,红色部分为需要注释的部分vim /etc/postfix/main.cf# smtpd related configsmtpd_recipient_restrictions permit_mynetworks,permit_sasl_authenticated,reject_non_fqdn_hostname,reject_non_fqdn_sender,reject_non_fqdn_recipient,rejec…

图论部分简单总结

总的感受: 这里大概囊括了一下图论的基础知识,图论是一个比较考验思维的部分。 尤其是后面有关二分图,网络流等的分支,对建模转化的要求还是很高的。 进入正题了: 一、最短路: 这一个部分不想多讲,虽然是很基础的一个部分&#xf…

Oracle学习笔记:数据字典

oracle数据字典 说起字典,下面让我来打个比方。我们读书写字,靠的是什么?你会说:字!那我问你,你所用的字又是什么呢?!这时,你只可能把字典(新华字典、康熙字典…

linux分区转换gpt命令,Linux中磁盘如何转换GPT格式

Fdisk命令虽然很交互,操作也方便,但是对于大于2T的磁盘无法操作,假如我们想用大于2T的磁盘怎么办?可以把磁盘转化为GPT格式。GPT格式的磁盘相当于原来MBR磁盘中原来保留4个partition table的416个字节只留第一个16个字节,类似于扩…

JAVA格式化当前日期或者取年月日

Date d new Date(); System.out.println(d); SimpleDateFormat sdf new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateNowStr sdf.format(d); System.out.println("格式化后的日期:" dateNowStr); 转载于:https://www.cnblo…

DHL出台货运新方案

DHL出台货运新方案(来自:北京国际快递) 这是中国货运行业内首次由货运公司发起的关于货运安全方面的战略合作项目,货运公司与机场货运站、航空公司首次共同协作致力于货物的安全保障。 国际快递巨头DHL日前宣布,旗下的货运部门DHL全球货运物流…

linux 帐户安全管理员权限,Linux - 安全 - 账户管理

Linux 账户管理用户用户文件 /etc/passwd该文件所有用户可读,每一行代表一个用户,包含7个字段,分别用:隔开。# 查看文件内容cat /etc/passwd;内容:root:x:0:0:root:/root:/bin/bashwuhd:x:1002:1002::/home/wuhd:/bin/bash说明&am…

【转】sql表及字段命名规范

1.数据库表命名规范: (1)表名前应该加上前缀,表的前缀一个用系统或模块的英文名称缩写,前缀全部大写或首字母大写,表名中包含的单词首字母大写。 (2)数据库表名应该有意义,并且易于理解,最好使用可以表达功能的英文单词…

“卧槽”是怎么回事

“卧槽”是怎么回事2009-02-23 10版:新论 主持人:百科小子 提问者:丁莹(上海南京西路) 解答者:段凡(华东理工大学社会与公共管理学院博士) 问:日前有一项调查显示&am…