파이썬 beem에서 인터넷 회선 또는 API 노드 불안정성에 대한 대응 - 3
어제 포스팅했던 내용에서 이어지는 내용입니다.
파이썬 beem에서 인터넷 회선 또는 API 노드 불안정성에 대한 대응 - 2
API노드에 접속이 되지 않을 경우 다른 API노드로 전환을 할 때, 노드 리스트(list)에 대해 for 반복문을 쓰지 않아도 됩니다. 코드가 좀 더 간단해 질 수 있습니다.
import time
from beem import Steem
from beem.account import Account
steem_nodes = ["https://api.steemit.com", "https://api.justyy.com"]
while True:
try:
s = Steem(node=steem_nodes, num_retries=2)
a = Account('joviansummer', blockchain_instance=s)
print("연결 성공")
break
except:
print("예외 발생. 1분후 재시도합니다.")
time.sleep(60)
Steem() 객체를 사용할 때, 재시도 회수(num_retries)를 기본값(-1, 무한)을 사용하지 않고 특정값으로 지정해 줍니다. 여기서는 2회로 지정했습니다. 재시도 회수를 초과하면 노드 리스트의 다른 노드로 접속을 시도합니다. 코드는 좀 더 간단해지고, 대신 어느 노드에 접속했는지 명시적으로 알기는 어렵습니다.
@joviansummer의 스팀 프로젝트
스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다.
(https://steemitwallet.com/~witnesses)
jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기
Posted through the AVLE Dapp (https://avle.io)
Upvoted! Thank you for supporting witness @jswit.