根据订阅信息获取文章的接口出错
和昨天的问题一样,传入sql的数组不能为空,所以要加个判断
后端莫名其妙断开管道的问题
这个问题不管什么方法,偶尔请求会有这个问题,昨天也遇到了,就是没有解决,今天解决一下。
查阅了半天资料,说的是tcp超时的异常,导致的连接被断开
参考博客:https://blog.csdn.net/zqz_zqz/article/details/52235479
所以接下来准备使用cache缓存来优化程序的读取速度
空指针异常
发现是如果用户没有提交博客,所以根据userId获取不到对应提交的博客id,为null所以出错,所以在获取时加一层判断。
对Mahout使用的模型进行提前的初始化
由于每次给用户基于协同过滤进行推荐时,都需要构建模型,然后计算用户之间或者物品之间的相似度,所以使用 @PostConstruct注解,让他在项目初始化时就进行初始化,之后只需要调用即可。
public static DataModel userCategoryDataModel;
public static DataModel userTagDataModel;
public static UserSimilarity userCategoryUserSimilarity ;
public static ItemSimilarity userCategoryItemSimilarity ;
public static UserSimilarity userTagUserSimilarity ;
public static ItemSimilarity userTagItemSimilarity ;
//定时的初始化
@PostConstruct
public void postConstruct() throws IOException, TasteException {
userCategoryDataModel = new FileDataModel(new File(USER_CATEGORY_MODEL_FILE_NAME));
userTagDataModel = new FileDataModel(new File(USER_TAG_MODEL_FILE_NAME));
userCategoryUserSimilarity = new PearsonCorrelationSimilarity(userCategoryDataModel);
userCategoryItemSimilarity = new PearsonCorrelationSimilarity(userCategoryDataModel);
userTagUserSimilarity =new PearsonCorrelationSimilarity(userTagDataModel);
userTagItemSimilarity = new PearsonCorrelationSimilarity(userTagDataModel);
System.out.println("模型初始化完成");
}
这些模型只需要一次性的初始化,程序执行时就不用改变了,下一次初始化时在定时抽取完成之后