当前位置: 首页 > 面试题库 >

如何临时禁用消息监听器

夏侯兴学
2023-03-14
问题内容

暂时禁用消息侦听器的好方法是什么?我要解决的问题是:

  • 消息侦听器接收到JMS消息
  • 尝试处理该消息时出现错误。
  • 我等待系统再次准备就绪,以便能够处理该消息。
  • 在系统准备就绪之前,我不再需要任何消息,因此…
  • …我想禁用消息监听器。
  • 我的系统已准备好再次处理。
  • 处理失败的消息,并确认JMS消息。
  • 再次启用消息监听器。

现在,我正在使用Sun App
Server。我通过在MessageConsumer中将消息侦听器设置为null来禁用了消息侦听器,然后使用setMessageListener(myOldMessageListener)再次启用了消息侦听器,但是此后我不再收到任何消息。


问题答案:

如果onMessage()在系统准备好再次处理消息之前不从侦听器方法返回,该怎么办?这将阻止JMS在该使用者上传递另一条消息。

这与不receive()同步情况下的异步等效。

给定的JMS会话没有多线程,因此消息管道一直保持到该onMessage()方法返回为止。

我不熟悉动态调用的含义setMessageListener()。Javadoc表示如果被称为“当消息被现有的侦听器或同步使用者使用时”,则存在未定义的行为。如果您是从内部拨打电话onMessage(),则听起来好像是在遇到未定义的情况。

如果您不太熟悉,则在“连接”级别有一些启动
/
停止方法。



 类似资料:
  • 问题内容: 我有一个带有模型和视图的Swing应用程序。在视图(GUI)中,有很多组件,每个组件都映射到模型对象的某些属性并显示其值。 现在,有一些UI组件会在UI中的值更改时自动触发某些模型属性的更新。这需要我在UI中重新加载完整的模型。这样,我进入了一个无限的更新循环,因为UI中的每个模型重新加载都会触发另一个模型重新加载。 我有一个指示加载过程的标志,在通过模型设置UI字段时,我想使用它来临

  • 只有监听设备消息后,在就收到消息数据才会返回消息内容,否则,不返回接收的消息内容。 请求方式: "|4|2|2|\r" 返回值: "|4|2|2|1|\r" 监听成功 Arduino样例: softSerial.print("|4|2|2|\r");

  • 1.未读消息的监听 未读消息的监听用于提示访客有未读消息,用户可以在咨询入口处添加消息数小红点时使用; (新接口)未读消息的监听接口为OnUnreadNMsgListener;使用新接口的不用再使用下面的老接口。 注册监听方法:NSDKMsgUtils.getInstance().setOnUnreadNMsgListener(OnUnreadNMsgListener onUnreadNmsgLi

  • 在与JMS合作的过程中,我有一个疑问。据我所知,创建同步消息消费者是可能的。但是,我必须以一定的频率启动它,因为事实上没有侦听器。接下来,为了同步使用队列中的消息,我可以创建一个MDB并将池设置为1。我认为这不是一个好的解决办法。 我的目标是在消息出现在队列中时同步地使用它们。从我的观点来看,上述解决方案并不好:1。不时推出的消费者。2.MDB(通常异步)和池设置为1。 有什么适合我的解决方案吗?

  • ap.onSocketMessage(CALLBACK) 监听 WebSocket 接受到服务器的消息事件。 CALLBACK 参数说明 名称 类型 描述 data String/ArrayBuffer 服务器返回的消息 代码示例 <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.

  • 我想使用Spring Kafka API实现一个有状态侦听器。 鉴于以下情况: ConcurrentKafkaListenerContainerFactory,并发设置为“n” Spring@Service类上的@KafKalistener注释方法