def run(registry): active = True while active: registry["gateway_active"] = True time.sleep(1) info("Worker process id: {0}".format(os.getpid())) active = registry["gateway_active"]
def start(self): topics = [*self.handlers.keys()] self.consumer.subscribe(topics=topics) info("starting consumer...registered signterm") signal.signal(signal.SIGTERM, self._signal_term_handler) signal.signal(signal.SIGINT, self._signal_term_handler) signal.signal(signal.SIGQUIT, self._signal_term_handler) signal.signal(signal.SIGHUP, self._signal_term_handler) self.loop.run_until_complete(self._consume())
def run(registry): active = True while active: global broker_consumer registry["deployer_active"] = True time.sleep(1) broker_consumer.start() info("Worker process id: {0}".format(os.getpid())) active = registry["deployer_active"]
def run(): active = True with Manager() as manager: context = get_context("spawn") registry = manager.dict() registry["app_active"] = True try: deployer_proc = init_deployer(context, registry) gateway_proc = init_gateway(context, registry) except: info("Exception: {0}".format(sys.exc_info()[0])) info("Exiting!") registry["app_active"] = False finally: active = registry["app_active"] while active: time.sleep(1) active = registry["app_active"]
async def _consume(self): try: while True: msg = self.consumer.poll(timeout=1.0) if msg is None: continue if msg.error(): # Error or event if msg.error().code() == KafkaError._PARTITION_EOF: # End of partition event info("Reached end at offset {0}\n".format( msg.offset())) elif msg.error(): # Error raise KafkaException(msg.error()) else: self._run_handlers(msg) finally: # Close down consumer to commit final offsets. self.consumer.close()
def init_gateway(context, registry): process = context.Process(target=gateway, args=(registry, )) process.start() info("Gateway worker process started with id: {0}".format(process.pid)) return process
def init_deployer(context, registry): process = context.Process(target=deployer, args=(registry, )) process.start() info("Deployer worker process started with id: {0}".format(process.pid)) return process
def _signal_term_handler(self, signal, frame): info("closing consumer")
import time from core.shared.common import info from use_cases.app.start_use_case import run as app if __name__ == '__main__': info("Starting Methamophosis app server...") app() time.sleep(2) info("Methamophosis app server terminated!")
def receive_message(message): info("msg: {0}".format(message.value()))