Delay startup of work tracking until Ursula.run

pull/2462/head
Kieran Prasch 2020-12-11 18:20:00 -08:00
parent 94bf887364
commit d13a175276
2 changed files with 8 additions and 9 deletions

View File

@ -1459,15 +1459,14 @@ class Worker(NucypherTokenActor):
self.__start_time = WORKER_NOT_RUNNING
self.__uptime_period = WORKER_NOT_RUNNING
# Workers cannot be started without being assigned a stake first.
if is_me:
if block_until_ready:
# Workers cannot be started before bonding.
self.block_until_ready()
self.stakes = StakeList(registry=self.registry, checksum_address=self.checksum_address)
self.stakes.refresh()
self.work_tracker = work_tracker or WorkTracker(worker=self)
if start_working_now:
self.stakes = StakeList(registry=self.registry, checksum_address=self.checksum_address)
self.stakes.refresh()
self.work_tracker = work_tracker or WorkTracker(worker=self)
self.work_tracker.start(act_now=start_working_now)
def block_until_ready(self, poll_rate: int = None, timeout: int = None, feedback_rate: int = None):

View File

@ -1057,7 +1057,7 @@ class Ursula(Teacher, Character, Worker):
block_until_ready: bool = True,
# TODO: Must be true in order to set staker address - Allow for manual staker addr to be passed too!
work_tracker: WorkTracker = None,
start_working_now: bool = True,
start_working_now: bool = False,
client_password: str = None,
# Character
@ -1260,14 +1260,14 @@ class Ursula(Teacher, Character, Worker):
def run(self,
emitter: StdoutEmitter = None,
hendrix: bool = True,
learning: bool = True,
discovery: bool = True,
availability: bool = True,
worker: bool = True,
pruning: bool = True,
interactive: bool = False,
hendrix: bool = True,
start_reactor: bool = True,
prometheus_config: 'PrometheusMetricsConfig' = None,
prometheus_config: 'PrometheusMetricsConfig' = None
) -> None:
"""Schedule and start select ursula services, then optionally start the reactor."""