From d6ff05a27c55e8a7262890c25382e6c13f158e9b Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 10 Jul 2023 20:20:35 +0800 Subject: [PATCH] 1 --- .../web3bcspider/services/erc721_refresher.js | 39 ++++++++++++++++++- server/web3bcspider/tasks/bcrefresh.js | 4 +- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/server/web3bcspider/services/erc721_refresher.js b/server/web3bcspider/services/erc721_refresher.js index 82186ab..0da7c60 100644 --- a/server/web3bcspider/services/erc721_refresher.js +++ b/server/web3bcspider/services/erc721_refresher.js @@ -47,8 +47,13 @@ class Erc721Refresher extends BaseService { await utils.serial( rows, async (row) => { - await this.refresh(row); - --this.progInfo['pendingCount']; + const nftExists = await this.tokenIsExists(row); + if (nftExists) { + await this.refresh(row); + --this.progInfo['pendingCount']; + } else { + ++this.progInfo['skipCount']; + } } ); } else { @@ -56,6 +61,7 @@ class Erc721Refresher extends BaseService { } ++this.progInfo['refreshedCount']; this.progInfo['pendingCount'] = 0; + this.progInfo['skipCount'] = 0; } catch (err) { log.error(logHead + err); await utils.sleep(5000 + utils.randRange(1000, 3000)); @@ -141,6 +147,35 @@ class Erc721Refresher extends BaseService { return true; } + async tokenIsExists(rawRow) { + const {err, nftDbConn} = await app.getDbConn(constant.BCNFTDB_NAME); + if (err) { + log.error('updateConfirmed:' + this.tokenId + ' err:' + err); + return false; + } + try { + { + const {err, row} = await nftDbConn.ormSelectOne( + 't_nft', + [ + ['net_id', rawRow['net_id']], + ['token_id', rawRow['token_id']], + ['contract_address', rawRow['contract_address']], + ]); + if (err) { + log.error('updateConfirmed:' + this.tokenId + ' err:' + err); + return false; + } + if (row) { + return true; + } + } + } finally { + nftDbConn.release(); + } + return false; + } + async update(row, fields) { const {err} = await this.conn.update( 't_erc721_refresh', diff --git a/server/web3bcspider/tasks/bcrefresh.js b/server/web3bcspider/tasks/bcrefresh.js index 4e1c02d..646a894 100644 --- a/server/web3bcspider/tasks/bcrefresh.js +++ b/server/web3bcspider/tasks/bcrefresh.js @@ -29,6 +29,7 @@ class BcRefresh extends BaseTask { 'progressInfo': { 'refreshedCount': 0, 'pendingCount': 0, + 'skipCount': 0, } }; refreshers.push(refresher); @@ -116,7 +117,8 @@ class BcRefresh extends BaseTask { const logObj = 'net_id: ' + net['net_id'] + ' ' + conf['contract_name'] + '' + ' refreshedCount:' + progInfo['refreshedCount'] + - ' pendingCount:' + progInfo['pendingCount'] + ' pendingCount:' + progInfo['pendingCount'] + + ' skipCount:' + progInfo['skipCount'] ; log.info(logObj); }