Skip to content

Commit

Permalink
add kill timeout, check for certain workers to handle resync
Browse files Browse the repository at this point in the history
  • Loading branch information
vmaksymiv committed Jun 3, 2016
1 parent eaad05b commit 6491953
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions openprocurement/contracting/api/databridge.py
Original file line number Diff line number Diff line change
Expand Up @@ -320,25 +320,30 @@ def sync_single_tender(self, tender_id):


def run(self):
logger.info('Start Contracting Data Bridge')
self.immortal_jobs = [
gevent.spawn(self.get_tender_contracts),
gevent.spawn(self.prepare_contract_data),
gevent.spawn(self.put_contracts),
gevent.spawn(self.retry_put_contracts),
]
while True:
try:
logger.info('Start Contracting Data Bridge')
logger.info('Starting forward and backward sync workers')
self.jobs = [
gevent.spawn(self.get_tender_contracts_backward),
gevent.spawn(self.get_tender_contracts),
gevent.spawn(self.prepare_contract_data),
gevent.spawn(self.put_contracts),
gevent.spawn(self.retry_put_contracts),
gevent.spawn(self.get_tender_contracts_forward),
]
gevent.joinall(self.jobs)
except KeyboardInterrupt:
logger.info('Exiting...')
gevent.killall(self.jobs)
gevent.killall(self.jobs, timeout=5)
break
except Exception, e:
logger.exception(e)

logger.warn("Restarting synchronization")


def main():
parser = argparse.ArgumentParser(description='Contracting Data Bridge')
Expand Down

0 comments on commit 6491953

Please sign in to comment.