你好,怎么处理扫描服务重启?
pontali opened this issue · 4 comments
pontali commented
你好,怎么处理扫描服务重启?
或者怎么监听区块高度变化?
yuyenews commented
暂时没有专门的功能来实现,但是有个办法可以实现这样的功能:
创建一个 filter为null的 监听器(ethMonitorFilter方法直接返回null), 这个监听器可以收到所有被扫出来的交易记录,每次被触发的时候 就把 块高记录下来。 如果宕机 或者服务停了,可以从被记录下来的这个块高开始扫描。
pontali commented
暂时没有专门的功能来实现,但是有一个方法可以实现这样的功能:
filter filter为null的的(((((Null),null),null),这这这方法这这个个监听器可以可以收到所有被出来的记录记录记录记录记录记录记录记录记录,可以从被记录下来的这个块开始扫描。
感谢,可以了🙏
顺便问一下,不同filter 是在同一线程执行,还是不同线程执行?
yuyenews commented
暂时没有专门的功能来实现,但是有一个方法可以实现这种功能:
滤波器为null(null)(null),null),null),null),null),null),null),这个这个方法这个收到所有被拿拿的记录记录记录记录记录记录记录记录记录记录记录记录记录记录谢谢,可以了🙏 顺便问一下,不同filter是在同线执行,还是不同线执行?
在同一个线程,排队执行,扫块跟filter是两个线程
viper-00 commented
我的建议是在redis缓存服务器内存储三个变量,最高度、缓存高度、当前扫块高度。
- 扫完一个块后将块高度记录到当前扫块高度。
- 当前扫块高度到达缓存高度就获取最高度,并更新到redis中
- 缓存高度的主要作用是避免反复调用RPC接口
- 可以把交易记录的hash扫出来,再用另一个线程处理详细的交易信息。