From 4bbb4ca17b38da82df9d85e6e7c71d50911c0841 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Fri, 17 Oct 2025 18:24:07 -0400 Subject: [PATCH] core env --- event_composer/requirements.txt | 16 ++++++++++++++ event_composer/wsgi.py | 37 +++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 event_composer/requirements.txt create mode 100644 event_composer/wsgi.py diff --git a/event_composer/requirements.txt b/event_composer/requirements.txt new file mode 100644 index 0000000..25b198e --- /dev/null +++ b/event_composer/requirements.txt @@ -0,0 +1,16 @@ +# Flask and Extensions +Flask==2.3.3 +Flask-Marshmallow==0.15.0 +marshmallow==3.19.0 +Flask-Cors==3.0.10 +gunicorn +requests +confluent-kafka==1.9.2 +flask-sqlalchemy +psycopg2-binary +alembic +python-dateutil +oracledb +Flask-Mail==0.10.0 +pandas==2.1.3 +openpyxl==3.1.5 diff --git a/event_composer/wsgi.py b/event_composer/wsgi.py new file mode 100644 index 0000000..fc10e89 --- /dev/null +++ b/event_composer/wsgi.py @@ -0,0 +1,37 @@ +import threading +from app import create_app +from app.integrations import KafkaIntegration +from app.config import settings +from app.utils.logger import logger + +app = create_app() +kafka = KafkaIntegration() + +def start_kafka_consumer(app): + with app.app_context(): + logger.info("Starting Kafka consumer...") + while True: + try: + + message = kafka.receive_messages( + topics=settings.KAFKA_TOPICS, timeout=settings.KAFKA_TIMEOUT + ) + + if message: + logger.info(f"Processed message: {message}") + else: + logger.info("No message received within timeout") + + + except Exception as e: + logger.error(f"Error while receiving message: {e}") + + + +if __name__ != "__main__": + + # Expose WSGI app instance for Gunicorn + wsgi_app = app + + # Start kafka in a thread + threading.Thread(target=start_kafka_consumer, args=(app,), daemon=True).start() \ No newline at end of file