diff --git a/entry/main.py b/entry/main.py new file mode 100644 index 0000000..fbad24a --- /dev/null +++ b/entry/main.py @@ -0,0 +1,53 @@ +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)