当音量约为每小时 200k 条消息并且 jython 不是一个选项时,我发现 stomp.py 落后了,因此使用 java 消息侦听器我希望有一个 python 脚本“订阅”消息/事件从此 java 应用程序生成。我有基本的网关工作并且可以调用“getMessage()”,如下所示:
def do_gateway():
java_gateway = JavaGateway()
try:
app = java_gateway.entry_point
message = app.getMsg()
len(message) > 0:
print_message(message)
...
java方法在哪里:
public String getMsg(){
System.out.println("stack size: " + stack.size());
return stack.size() > 0 ? stack.pop() : "";
}
我真正需要的是“订阅”getMsg() 方法并将这些消息作为事件“推送”。上述的低租金替代方案是:
app = java_gateway.entry_point
while True:
message = app.getMsg()
if len(message) > 0:
print_message(message)
我看到一些 callback_server 详细信息,其中需要 java 端的接口 - 我在 java 端设置了它,并且我可以在 python 端尽可能多地遵循,但显然我错过了好东西&它没有做太多:
****爪哇***
public class SubscriberEntryPoint implements MessageListener, ISubscriberEntryPoint,
SubscriberEntryPoint app = new SubscriberEntryPoint();
GatewayServer gatewayServer = new GatewayServer(app);
gatewayServer.start();
System.out.println("Gateway Server Started");
public interface ISubscriberEntryPoint {
public String getMsg();
}
****Python***
def do_callback():
try:
gateway = JavaGateway(start_callback_server=True)
class Java:
implements = ['mqtest.ISubscriberEntryPoint']
message = gateway.entry_point.getMsg()
print_message(message)
提前致谢!