import os import sys import json import time from services.loft_service import LoftService from helpers import aws_helper from sqs_listener import SqsListener from sqs_listener.daemon import Daemon class ServiceListener(SqsListener): def handle_message(self, body, attributes, messages_attributes): # gather/manage/process data based on the particular needs print(f'{time.localtime()} - message received...') service = LoftService(body) service.process() # log the things class ServiceDaemon(Daemon): def run(self): print("Starting Solver Service (v0.3.2)...") print("Initializing listener") listener = ServiceListener( 'measure-development-solver-ingest', region_name=os.environ['SOLVER_AWS_REGION'], aws_access_key=os.environ['SOLVER_AWS_ACCESS_KEY_ID'], aws_secret_key=os.environ['SOLVER_AWS_SECRET_ACCESS_KEY'], queue_url=os.environ['SOLVER_SQS_INGEST_QUEUE'] ) listener.listen() if __name__ == "__main__": daemon = ServiceDaemon('/var/run/sqs_daemon.pid',stdout='/app/logs/stdout', stderr='/app/logs/stderr', stdin='/app/logs/stdin') if len(sys.argv) == 2: if 'start' == sys.argv[1]: print("Starting listener daemon") daemon.start() elif 'stop' == sys.argv[1]: print("Attempting to stop the daemon") daemon.stop() elif 'restart' == sys.argv[1]: daemon.restart() else: print("Unknown command") sys.exit(2) sys.exit(0) else: print("usage: %s start|stop|restart" % sys.argv[0]) sys.exit(2)