irt-service/app/main.py
2021-10-31 03:50:07 +00:00

52 lines
1.5 KiB
Python

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)