java - 中断 Java 调用或回调或 R 中的类似内容

标签 java r activemq rjava

我使用这个名为“Rjms”的包,它是 RJava 的包装器,用于从 apache activeMQ 推送/使用。包中有一个名为“consume”的函数,我用它来从队列中消费。问题是,一旦我调用该电话,直到从队列收到消息为止,应用程序都会挂起。如果碰巧队列为空,则整个脚本将被挂起。我想添加某种时间,这样如果 5 分钟内没有收到消息,那么我想挂断电话。

一旦在 R 中进行调用,它就会在内部调用一些 Java 函数(我假设)。因此我不确定 R 是否可以中断这个过程。我正在阅读回调,这似乎是个好主意,但找不到任何可以在 R 中使用的具体内容。我不确定是否可以给出一个可重现的示例,因为需要首先设置 Apache ActiveMQ。但总的来说,有没有一种方法可以摆脱非 R 原生的函数调用?

任何帮助将不胜感激。

链接 - Rjms 包 - http://cran.r-project.org/web/packages/Rjms/Rjms.pdf

最佳答案

我无法准确说出 R 正在做什么,但听起来好像它调用了阻塞 MessageConsumer#receive 方法,该方法将永远等待消息到达。有一个定时替代方案,但我不知道您是否有权使用它。通常,您可以通过调用其 close() 方法来关闭 MessageConsumer 来中断此方法,如果您可以进行调用该方法,那么它应该中断并返回 null,或者可能抛出一个我忘记了的异常。我对 R 不太了解,所以无法提供任何其他建议,打破阻塞调用往往因情况而异。

关于java - 中断 Java 调用或回调或 R 中的类似内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17060787/

相关文章:

jms - Wildfly 10 Final 无限期地创建 ActiveMQ-client-global-threads

java - 如何以编程方式从客户端获取 ActiveMQ 代理版本

java - Tomcat Maven 插件 - 子容器在启动期间失败

r - 如何在plotly R中修复条的宽度

java - Action 后循环中断

R Raster writeRaster 不会覆盖

r - 计算 R 中的重复测量差异

activemq - 是否可以使用 ActiveMQ 进行发布/订阅消息传递

java - 背景颜色和 GTK 外观

java - 如何将 logback 操作记录到文件中?