1

当音量约为每小时 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)

提前致谢!

4

0 回答 0