此代码应从队列中读取,如果队列为空,则通过计时器重复读取以检查文本或字节的格式。以这种格式检查空队列是否正确?计时器在这种情况下会工作吗? 由于尚未配置MQ队列,因此无法检查。
$("#videotesting1").attr("src","{{url_for('static',filename='videoTest/'" + fileInput +")}}");'
答案 0 :(得分:0)
请注意,您的receiver.receive();
通话将无限期屏蔽。来自MQMessageConsumer
文档:
接收为此消息使用者生成的下一条消息。这个 无限期地阻止呼叫,直到产生消息或直到此消息为止 邮件使用者已关闭。
如果您想在指定的时间内读取队列,也许最好使用receive(long timeout)
方法:
公共javax.jms.Message接收(长时间超时) 抛出javax.jms.JMSException
接收在指定的超时时间内到达的下一条消息 间隔。该调用将阻塞,直到消息到达为止,即超时 过期,或者此消息使用方已关闭。零永不超时 过期,通话会无限期地阻塞。
答案 1 :(得分:0)
除非需要使用计时器,否则我更喜欢使用receive(timeout)
。如果队列中有一条消息,则接收调用将返回一条消息,否则它将超时,并抛出2033个原因代码。您可以捕获此异常,然后再次调用接收以等待消息。这也将允许您在被询问时停止该线程。
执行(TextMessage) receiver.receive()
而不是Message msg = receiver.receive()
,然后使用if(msg instanceof TextMessage)
确定收到的消息类型。