解决solr8.2增量定时导入solr-dataimportscheduler-1.1.jar包、不定时执行问题

首先solr已经提供了导入的功能,但是不能实现定时导入。

然后我就在网上找到了将solr-dataimportscheduler-1.1.jar放到solr-8.2.0\server\solr-webapp\webapp\WEB-INF\lib下,并配置了dataimport.proterties配置文件,但是一直未执行,害的我一直以为是增量配置有问题,搞了半天,最后我反编译了这个包,查看了一下代码,还好,代码逻辑很简单。

就是做了一个定时器,定时访问了

http://localhost:8080/solr/dataimport?command=delta-import

这个地址而已,而dataimport.proterties中就是配置了这个地址的怎么访问的。我的如下:

interval=1
port=8983
server=localhost
params=collection3/dataimport?command\=delta-import&clean\=false&commit\=true
webapp=solr
syncEnabled=1
syncCores=

这里说一下:

syncCores这个如果只是一个的话,可以像我这样可以写在params里,否则也可能会出现定时不执行的问题

莫得办法,代码里的逻辑就是这样,如果syncCores是多个用英文逗号隔开就行例如collection1,collection2

 

然后我把代码放到工程下进行编译,发现这东西还需要slf4j相关的日志包,检查了一下官方的包里没有这个,自己找了过来,需要

log4j-1.2.16.jar,slf4j-api-1.7.25.jar,slf4j-log4j12-1.7.25.jar

 启动的时候还需要metrics-core-3.0.2.jar这个包,不知道是用来做什么的。

然后检查代码发现如下图:

如图代码中的loader.getInstanceDir()已经又没了,并且loader需要关闭

改成如下图所示:

顺道发现这东西需要在web.xml配置后,定时器才会启动

打开solr-8.2.0\server\solr-webapp\webapp\WEB-INF\web.xml,添加如下:

<listener>
    <listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class>
</listener>

搞定!收工!

最后总结一下

如果在solr的页面中选择增量导入没有问题时,但是定时导入一直没有执行的话,按以下步骤进行:

1、在solr-8.2.0\server\solr-webapp\webapp\WEB-INF\lib下导入需要的包(log4j-1.2.16.jar,slf4j-api-1.7.25.jar,slf4j-log4j12-1.7.25.jar)

经过测试:metrics-core-3.0.2.jar不能放在lib下,有冲突

2、确定dataimport.proterties的位置没有放错

这个经过测试是放在solr-8.2.0\server\solr下新建一个conf文件夹,然后放入dataimport.properties

3、需要在web.xml中添加定时器启动listener

4、确定solr-dataimportscheduler是否与solr的版本对应,貌似看1.0更早了,1.1貌似是16年改的。

自己动手丰衣足食啊,祝看到这篇文章的程序员们!加油!

最后放上自己反编译后的jar包

链接: https://pan.baidu.com/s/1cgCVzT5IlSg1TabHCtfnPA 提取码: cncs 

 

参考资料:

https://blog.csdn.net/jiangjun0130/article/details/50914338

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值