오토 보팅(auto voting) 서비스에서 업보트가 늦어지는 문제

오토 보팅 서비스는 설정된 대상 ID에서 새로운 글을 포스팅했는지 확인하고, 만약 포스팅했다면 포스팅한 시간과 현재 시간과의 시간차를 계산하고, 설정된 지연 시간이 지났을 경우 자동으로 업보트(upvote)가 이루어집니다.

그런데 간혹 스팀 API서버쪽에서 응답이 오지 않는 경우가 발생합니다. 이 경우 아래와 같은 오류 메시지가 출력됩니다.

WARNING:root:Retry in 3s -- RPCErrorRecoverable: error from api.steemit.com (Unable to acquire database lock) in get_account_history

제대로 처리가 되지 않아서 3초후에 재시도한다는 식의 내용인데, 문제는 이런 오류가 한두번 나오다가 괜찮을 때도 있고 어떨 때는 수십번씩 연속으로 나오기도 한다는 점입니다.

새로 등록된 글을 확인하고 업보트를 수행하는 작업은 스팀 API서버에 요청을 보내고 응답을 받는 식으로 이루어집니다. API서버쪽에서 응답이 오지 않거나 위와 같이 오류가 발생할 경우, 이쪽에서 할 수 있는 조치는 정상적으로 처리될 때까지 재시도하면서 기다리는 것 외에는 별다른 뾰족한 수가 없습니다.

그러므로, 자동 보팅 설정에서 딜레이(delay)값은 정확하게 보장되는 설정은 아닙니다. 예를 들어 새로운 글이 포스팅되고 10분후에 업보트하도록 설정되어 있다면, 정확히 10분이 되는 시점이 아니라 10분이 지난 어느 시점(스팀 API서버에서 정상적으로 응답이 오는 시점)에 업보트가 이루어집니다.

대부분의 업보팅은 설정한 딜레이값을 기준으로 늦어도 1~2분 이내에는 이루어지는 것으로 보입니다만, 간혹 이보다 더 늦어지는 경우도 있는 것 같습니다. 동시에 수많은 접속이 몰리면서 이런 상황이 발생하는 것 아닌가 싶기도 합니다.

Sort:  

감사합니다.

도움 되었다니 다행입니다.

원래 업보팅을 포스팅후 5분으로 설정해 놓았는데 오늘 오전에는 1~2시간 정도 지연되어서 보팅이 안 되는 줄 알고 수동 보팅으로 진행했는데, 조금 더 기다려 볼 것 그랬네요.

좀 늦는다 싶을땐 수동으로 하셔도 무방할 것 같습니다. 다만, 수동과 자동의 보팅 비중값(vote weight)을 다르게 했을 경우 나중에 업보트되는 값이 최종값이 될 것으로 생각됩니다.

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.076
BTC 64420.09
ETH 1675.09
USDT 1.00
SBD 0.41