import argparse import sys import os import pytz from common.helper.logging import Logging from setup.config import load_config from src.supervisor import Supervisor from src.bosses import Bosses def main(args): configs = load_config(args.config_folder) configs.set('timezone', pytz.timezone('America/Santiago')) params = { 'folders': { 'config': args.config_folder, 'log': args.log_folder, 'data': args.data_folder }, 'bosses': Bosses(args.data_folder), 'logging': Logging(configs.get('timezone'), args.log_folder) } params['logging'].log('Starting', caller='main') supervisor = Supervisor(configs=configs, params=params) supervisor.register_worker('common.helper.logger', 'Worker') supervisor.add_queue('log') supervisor.register_worker('src.email', 'RevisorEmailWorker') supervisor.register_worker('src.email', 'EmailInterpreter') supervisor.add_queue('emails') supervisor.add_queue('questions') supervisor.register_worker('src.action.questions', 'QuestionWorker') supervisor.register_worker('src.action.reminder', 'RemindRegisterWorker') supervisor.register_worker('src.action.reminder', 'ReminderWorker') supervisor.add_queue('reminders') supervisor.add_lock('reminders') supervisor.start() supervisor.join() params['logging'].log('Waiting for Supervisor', caller='main') # sys.exit() if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('-c', '--config_folder', default=os.path.join(os.path.realpath('../'), 'config')) parser.add_argument('-d', '--data_folder', default=os.path.join(os.path.realpath('..'), 'data')) parser.add_argument('-l', '--log_folder', default=os.path.join(os.path.realpath('..'), 'logs')) _args = parser.parse_args() main(_args)