from garcon import activity import logging import os import socket import threading import flow logger = logging.getLogger('garcon') logging.basicConfig(level=logging.INFO) def run_workers(flow): activities = activity.find_workflow_activities(flow) for activity_instance in activities: threading.Thread( target=worker_runner, args=(activity_instance,)).start() def worker_runner(worker): """Run indefinitely the worker. Args: worker (object): the Activity worker. """ identity = '{}_activity_{}_{}'.format( socket.getfqdn(), os.getpid(), threading.get_ident()) worker.logger.info('Starting activity worker {} with id {}'.format( worker.name, identity)) while(worker.run(identity=identity)): continue hello_world_flow = flow.HelloWorldFlow('dev_penner', '1.0') run_workers(hello_world_flow)