diff --git a/engine/.env.event b/engine/.env.event index 2287481..d5708f8 100644 --- a/engine/.env.event +++ b/engine/.env.event @@ -24,5 +24,5 @@ BANK_CALL_DISBURSE_LOAN_ENDPOINT="/api/DisburseLoan" BANK_CALL_COLLECT_LOAN_ENDPOINT="/api/CollectLoan" BANK_CALL_TRANSACTION_VERIFY="/api/TransactionVerify" -FLASK_APP=wsgi.py +FLASK_APP=event_wsgi.py FLASK_ENV=development \ No newline at end of file diff --git a/engine/docker-compose.yml b/engine/docker-compose.yml index 6f90695..10dd231 100644 --- a/engine/docker-compose.yml +++ b/engine/docker-compose.yml @@ -11,8 +11,8 @@ services: - FLASK_APP=wsgi.py - FLASK_ENV=production #- SQLALCHEMY_DATABASE_URI_FULL="oracle+oracledb://FIRSTADVSTG:Pchanged_56789@10.2.110.30:1521/?service_name=firstadv" - volumes: - - .:/app +# volumes: +# - .:/app #network_mode: "host" # Uses the host's network restart: always networks: @@ -26,10 +26,10 @@ services: ports: - "5000:5000" environment: - - FLASK_APP=app.py +# - FLASK_APP=event_app.py - FLASK_RUN_HOST=0.0.0.0 - volumes: - - .:/app +# volumes: +# - .:/app restart: always networks: - digifi-net diff --git a/engine/event_wsgi.py b/engine/event_wsgi.py new file mode 100644 index 0000000..fc10e89 --- /dev/null +++ b/engine/event_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 diff --git a/engine/wsgi.py b/engine/wsgi.py index fc10e89..49f70e1 100644 --- a/engine/wsgi.py +++ b/engine/wsgi.py @@ -1,37 +1,7 @@ -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 + wsgi_app = app