首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongo客户端{Mongo-Java-driver}创建挂起持续时间。未抛出异常

Mongo客户端{Mongo-Java-driver}创建挂起持续时间。未抛出异常
EN

Stack Overflow用户
提问于 2016-01-19 13:27:24
回答 3查看 577关注 0票数 1

我让一个cron-job在Linux机器上每隔5分钟运行一次。该作业执行一个Java类。

代码语言:javascript
复制
    private MongoClient createConnection(int retry,List<ServerAddress> host){  
    try {  
        System.out.println("Retrying----------"+retry);  

        MongoClient client = new MongoClient(host, MongoClientOptions.builder()
                .connectionsPerHost(10)
                .threadsAllowedToBlockForConnectionMultiplier(5)
                .connectTimeout(5000).writeConcern(WriteConcern.NORMAL).build());
        client.getDB("admin").command("ping").throwOnError();  
        retry = 0;  
        return client;  
    }  catch (Exception e) {  
        retry++;  
        if (retry < retryLimit) {  
            createConnection(retry,host);  
        } else {  
            System.out.println("Connection could not be established to host-"+host);  
        }  
        return null;
    }
}

重试是一个整数值,表示在主机无法访问的情况下可以尝试创建客户端的次数。

我传递的主机列表是-

代码语言:javascript
复制
        public static List<ServerAddress> HOST_SCRIPT = new ArrayList<ServerAddress>() {
    private static final long serialVersionUID = 1L;
    {
        try {
            add(new ServerAddress("PrimaryHost23", 27017));
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
};

代码在创建I MongoClient时被卡住。这种情况并不总是发生。当我在我的本地机器上运行时,代码运行得很好,并且从不挂起。没有抛出异常。

我最近升级了Linux机器操作系统(从CentOS 5升级到CentOS 6)。这可能是因为这个脚本之前工作得很好吗?请帮帮忙。

你好,Vibhav

EN

回答 3

Stack Overflow用户

发布于 2016-01-19 14:01:11

你能做的就是抛出mongo异常,试试mongo客户端卡住的那个,你会知道的,试试这个https://api.mongodb.org/java/2.6/com/mongodb/MongoException.html

票数 -1
EN

Stack Overflow用户

发布于 2016-01-19 16:34:02

是的,当然,实际上我是在用java创建爬虫,它可以抓取任何特定网站的所有链接,并使用Jsoup和jcabi api验证css和html结构,但当我用来存储到数据库的链接时,它没有抛出任何异常,甚至也没有存储数据。所以我就这么做了

代码语言:javascript
复制
 catch (MongoException e){
        System.err.print(e.getClass().getName()+": "+e.getMessage());
    }
票数 -1
EN

Stack Overflow用户

发布于 2016-01-19 20:11:59

你有没有检查过你为你的项目上传的jar的兼容性,就像以前的Mongo mongo = new Mongo(host,port)一样;但这已经被弃用了。试着检查一下,甚至是你的MongoDb jar。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34869081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档