52 lines
1.8 KiB
Python
52 lines
1.8 KiB
Python
import argparse
|
|
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')
|
|
|
|
|
|
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)
|