Add varialized interval for intermediate saving during updates
This commit is contained in:
parent
9a0746172f
commit
c3409c4460
@ -21,7 +21,6 @@ impl<'a> WasmSpScanner<'a> {
|
||||
owned_outpoints: HashSet<OutPoint>,
|
||||
keep_scanning: &'a AtomicBool,
|
||||
) -> Self {
|
||||
log::info!("Creating WasmSpScanner");
|
||||
Self {
|
||||
client,
|
||||
updater,
|
||||
@ -42,6 +41,9 @@ impl<'a> WasmSpScanner<'a> {
|
||||
let mut update_time = Instant::now();
|
||||
let mut stream = block_data_stream;
|
||||
|
||||
let save_interval = 10;
|
||||
let mut blocks_scanned = 1;
|
||||
|
||||
while let Some(blockdata) = stream.next().await {
|
||||
let blockdata = blockdata?;
|
||||
let blkheight = blockdata.blkheight;
|
||||
@ -55,8 +57,8 @@ impl<'a> WasmSpScanner<'a> {
|
||||
|
||||
let mut save_to_storage = false;
|
||||
|
||||
// always save on last block or after 30 seconds since last save
|
||||
if blkheight == end || update_time.elapsed() > Duration::from_secs(30) {
|
||||
// always save on last block or after scanning some number of blocks
|
||||
if blkheight == end || blocks_scanned % save_interval == 0 {
|
||||
save_to_storage = true;
|
||||
}
|
||||
|
||||
@ -79,6 +81,8 @@ impl<'a> WasmSpScanner<'a> {
|
||||
self.save_state()?;
|
||||
update_time = Instant::now();
|
||||
}
|
||||
|
||||
blocks_scanned += 1;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
Loading…
x
Reference in New Issue
Block a user