需要Py4j事件监听器

时间:2016-02-05 20:41:44

标签: java python py4j

当音量达到每小时约200,000条消息时,我发现stomp.py落后了。 jython不是一个选项,所以对于一个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()方法&将这些消息推送到#39;作为事件。以上的低租金替代方案是:

  app = java_gateway.entry_point
        while True:
            message = app.getMsg()
            if len(message) > 0:
                print_message(message)

我看到一些callback_server详细信息,其中需要java端的接口 - 我已经在java端设置了&尽管我可以追随蟒蛇方面,但显然我错过了好东西和它做得不够:

**** ***的java

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();

}

**** ***蟒

def do_callback():
    try:

        gateway = JavaGateway(start_callback_server=True)

        class Java:
            implements = ['mqtest.ISubscriberEntryPoint']

        message = gateway.entry_point.getMsg()
        print_message(message)

提前感谢!

0 个答案:

没有答案