Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory leaks Vert.x如何处理缺少的处理程序_Memory Leaks_Vert.x - Fatal编程技术网

Memory leaks Vert.x如何处理缺少的处理程序

Memory leaks Vert.x如何处理缺少的处理程序,memory-leaks,vert.x,Memory Leaks,Vert.x,最初在这里的论坛上提问- 我刚刚阅读了讨论通过事件总线发送消息时遇到的问题,其中没有针对指定地址注册的处理程序。 我只是好奇人们是如何处理这种情况的。手动定时器是推荐的方法吗?这种方法会随着时间的推移而泄漏内存吗 从node开始,我看到了解决此类问题的几种方法: 如果未找到处理程序,则立即引发异常 带错误的回调以清除响应侦听器 Catchall处理程序,您可以在其中放置一些代码来决定如何自己处理未处理的请求 我对这些或任何其他方法持开放态度,我只想确保我以正确的方式进行 这是一个开放的平台,但我

最初在这里的论坛上提问-

我刚刚阅读了讨论通过事件总线发送消息时遇到的问题,其中没有针对指定地址注册的处理程序。 我只是好奇人们是如何处理这种情况的。手动定时器是推荐的方法吗?这种方法会随着时间的推移而泄漏内存吗

从node开始,我看到了解决此类问题的几种方法:

  • 如果未找到处理程序,则立即引发异常
  • 带错误的回调以清除响应侦听器
  • Catchall处理程序,您可以在其中放置一些代码来决定如何自己处理未处理的请求
  • 我对这些或任何其他方法持开放态度,我只想确保我以正确的方式进行

    这是一个开放的平台,但我不知道是否值得为当前的稳定版本(v1.3)寻找修复方案,或者我是否应该等待v2.0(我还没有看到v2.0的任何时间线,但围绕它的git repo中似乎有很多活动)

    任何指导都将不胜感激。

    杂志字面上说:

    “如果您发送一条指定回复处理程序的消息,而该回复永远不会 然后,默认情况下,您将得到一个永远不会得到的处理程序 未注册。”

    对我来说,默认行为听起来也很糟糕,但幸运的是,自从Vert.x2.0以来,我们有了一种发送超时的方法,这似乎是100%的发送方式

    例如:

    eb.sendWithTimeout("test.address", "This is a message", 1000, new Handler<AsyncResult<Message<String>>>() {
        public void handle(AsyncResult<Message<String>> result) {
            if (result.succeeded()) {
                System.out.println("I received a reply " + message.body);
            } else {
    
                System.err.println("No reply was received before the 1 second timeout!");
            }
        }
    });
    
    eb.sendWithTimeout(“test.address”,“这是一条消息”,1000,新处理程序(){
    公共无效句柄(异步结果){
    if(result.successed()){
    System.out.println(“我收到了回复”+message.body);
    }否则{
    System.err.println(“在1秒超时之前没有收到回复!”);
    }
    }
    });
    
    感谢您的帮助,但这个问题已经有一年多的历史了:-)此外,vert.x团队明确表示,所有问题都应该直接转到他们的google groups论坛(很久以前就在那里得到了回答)。