From 3bc92876685bd55047aa1957f9b8dc22170d4f52 Mon Sep 17 00:00:00 2001 From: UpstreamData Date: Fri, 6 May 2022 13:51:20 -0600 Subject: [PATCH] add scan retries to getting data --- miners/bmminer.py | 8 +++++++- miners/bosminer.py | 11 ++++++++--- miners/btminer.py | 7 ++++++- miners/cgminer.py | 7 ++++++- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/miners/bmminer.py b/miners/bmminer.py index 8abb1702..ae3fd56d 100644 --- a/miners/bmminer.py +++ b/miners/bmminer.py @@ -1,6 +1,7 @@ from API.bmminer import BMMinerAPI from miners import BaseMiner import logging +from settings import MINER_FACTORY_GET_VERSION_RETRIES as DATA_RETRIES class BMMiner(BaseMiner): @@ -143,7 +144,12 @@ class BMMiner(BaseMiner): if hostname: data["Hostname"] = hostname - miner_data = await self.api.multicommand("summary", "pools", "stats") + miner_data = None + for i in range(DATA_RETRIES): + miner_data = await self.api.multicommand("summary", "pools", "stats") + if miner_data: + break + if not miner_data: return data diff --git a/miners/bosminer.py b/miners/bosminer.py index 56aa96c6..4bcd652d 100644 --- a/miners/bosminer.py +++ b/miners/bosminer.py @@ -3,6 +3,7 @@ from API.bosminer import BOSMinerAPI import toml from config.bos import bos_config_convert, general_config_convert_bos import logging +from settings import MINER_FACTORY_GET_VERSION_RETRIES as DATA_RETRIES class BOSMiner(BaseMiner): @@ -256,9 +257,13 @@ class BOSMiner(BaseMiner): if hostname: data["Hostname"] = hostname - miner_data = await self.api.multicommand( - "summary", "temps", "tunerstatus", "pools" - ) + miner_data = None + for i in range(DATA_RETRIES): + miner_data = await self.api.multicommand( + "summary", "temps", "tunerstatus", "pools" + ) + if miner_data: + break if not miner_data: return data summary = miner_data.get("summary")[0] diff --git a/miners/btminer.py b/miners/btminer.py index 4db95ad3..a35e412f 100644 --- a/miners/btminer.py +++ b/miners/btminer.py @@ -2,6 +2,7 @@ from API.btminer import BTMinerAPI from miners import BaseMiner from API import APIError import logging +from settings import MINER_FACTORY_GET_VERSION_RETRIES as DATA_RETRIES class BTMiner(BaseMiner): @@ -98,8 +99,12 @@ class BTMiner(BaseMiner): if hostname: data["Hostname"] = hostname + miner_data = None + for i in range(DATA_RETRIES): + miner_data = await self.api.multicommand("summary", "devs", "pools") + if miner_data: + break - miner_data = await self.api.multicommand("summary", "devs", "pools") if not miner_data: return data diff --git a/miners/cgminer.py b/miners/cgminer.py index f830eaae..f57c5f7c 100644 --- a/miners/cgminer.py +++ b/miners/cgminer.py @@ -1,6 +1,7 @@ from miners import BaseMiner from API.cgminer import CGMinerAPI from API import APIError +from settings import MINER_FACTORY_GET_VERSION_RETRIES as DATA_RETRIES class CGMiner(BaseMiner): @@ -117,8 +118,12 @@ class CGMiner(BaseMiner): if hostname: data["Hostname"] = hostname + miner_data = None + for i in range(DATA_RETRIES): + miner_data = await self.api.multicommand("summary", "pools", "stats") + if miner_data: + break - miner_data = await self.api.multicommand("summary", "pools", "stats") if not miner_data: return data