问题
多线程爬虫,数据源是DruidDataSource,SQL很长且确定没有错误,就不贴了。毕竟如果是SQL的问题,那么本地执行速度也会很慢。
程序打Jar包丢在阿里云服务器上运行发现爬虫速度很慢,查询日志发现保存到数据库这块耗时50s;同样代码在idea直接执行耗时为1s。
// 获取连接
while (true) {
try {
connection = ds.getConnection();
if (connection != null)
break;
} catch (SQLException e) {
Thread.sleep(150);
}
}
// 保存到数据库
logger.debug(task.getObjectid()+"解析完成,开始保存到数据库:"+System.currentTimeMillis());
connection.createStatement().execute(infoDetailSql + "; " + attrSql + "; " + updateTaskSql);
logger.debug(task.getObjectid()+"保存到数据库完成:"+System.currentTimeMillis());
查看服务器监控,资源占用均未超过50%。
爬虫服务器、数据库服务器各服务器之间通信良好。
希望各位能不吝赐教,点出可能存在的问题。
SQL长度为1M,可能与服务器上行带宽仅为1M有关系。