在使用多线程进行大量数据操作的时候,采用设置mysql唯一标识的方式来解决脏数据,多线程的目的是为了效率,如果加锁之后就等于失去了使用多线程的意义
第一步:CREATE UNIQUE INDEX index_t_keywords_library_unique_1 ON t_keywords_library (keyword,language_id);
第二步:
try {
keywordLibraryService.insertKeywordsLibrary(keywordL);
} catch (Exception e) {
//如果插入异常,查询是否存在结果
keywordL = keywordLibraryService.getKeywordByWord(sdt.getKeyValue(),lang);
if(keywordL == null){
//如果也不存在记录,则打印错误日志keywordL
logger.error("insert keyword error : ");
return 0;
}
}