我是 python 编程的新手,我正在尝试分析 BSC 网络的待处理块。我的程序检查待处理的块(事件)并做一些事情。关键是在循环事件处于活动状态时会发生很多事件,而我的过程非常缓慢,无法实时分析所有新数据。
如果我删除函数 hash_analise() 并打印所有事件就可以了,程序接收数据的速度更快,我可以实时打印所有哈希值,但是当我调用这个函数时,我的程序变慢了。
我尝试使用线程,但我需要同步事件中的所有数据并使用 thread.join() 等待,但是当我等待这个线程时比以前慢。
有什么方法可以更快地运行吗?
感谢您的帮助,没有线程的代码:
def hash_analise(hash):
try:
hash_analise = web3.eth.get_transaction(hash)
print_hash = Web3.toJSON(hash_analise)
print("IMPRIME HASH1:", print_hash)
if TOKEN_LOWER_CORRIGIDO in print_hash:
print("\nCONTÉM A STRING ESCOLHIDA")
except:
print("TRANSAÇÃO NÃO LOCALIZADA")
if __name__ == "__main__":
tx_filter = web3.eth.filter('pending')
count = 0
while True:
for event in tx_filter.get_new_entries():
evento = Web3.toJSON(event)
txnhash = evento[1:67]
hash_analise(txnhash)
count += 1
print("Main", count)