diff --git a/main.py b/main.py index 82b0d2e..bb2446c 100644 --- a/main.py +++ b/main.py @@ -1,25 +1,45 @@ import os import pika import json -import requests - from components.video import process_full_video RABBITMQ_HOST = os.environ.get('RABBITMQ_HOST', 'rabbitmq') RABBITMQ_PORT = int(os.environ.get('RABBITMQ_PORT', 5672)) RABBITMQ_USER = os.environ.get('RABBITMQ_USER', 'admin') RABBITMQ_PASS = os.environ.get('RABBITMQ_PASS') -RABBITMQ_QUEUE = os.environ.get('RABBITMQ_QUEUE', 'to-render') +RABBITMQ_QUEUE = os.environ.get('RABBITMQ_QUEUE', 'video_tasks') +RABBITMQ_UPLOAD_QUEUE = os.environ.get('TO_UPLOAD_QUEUE', 'to-upload') if not RABBITMQ_PASS: raise RuntimeError("RABBITMQ_PASS não definido no ambiente") +def publish_to_queue(payload): + credentials = pika.PlainCredentials(RABBITMQ_USER, RABBITMQ_PASS) + parameters = pika.ConnectionParameters( + host=RABBITMQ_HOST, + port=RABBITMQ_PORT, + credentials=credentials, + heartbeat=600, + blocked_connection_timeout=300 + ) + connection = pika.BlockingConnection(parameters) + channel = connection.channel() + channel.queue_declare(queue=RABBITMQ_UPLOAD_QUEUE, durable=True) + channel.basic_publish( + exchange='', + routing_key=RABBITMQ_UPLOAD_QUEUE, + body=json.dumps(payload), + properties=pika.BasicProperties( + delivery_mode=2, # persistente + ) + ) + connection.close() + def callback(ch, method, properties, body): try: data = json.loads(body) filename = data.get("filename") times = data.get("times", []) - webhook_url = data.get("webhookUrl") url = data.get("url") video_id = data.get("videoId") @@ -47,11 +67,10 @@ def callback(ch, method, properties, body): print(f"Erro no processamento: {e}") try: - if webhook_url: - resp = requests.post(webhook_url, json=payload, timeout=30) - print(f"Webhook status: {resp.status_code}") - except Exception as wh_err: - print(f"Erro ao chamar webhook: {wh_err}") + publish_to_queue(payload) + print(f"Mensagem publicada na fila '{RABBITMQ_UPLOAD_QUEUE}'.") + except Exception as publish_err: + print(f"Erro ao publicar na fila '{RABBITMQ_UPLOAD_QUEUE}': {publish_err}") ch.basic_ack(delivery_tag=method.delivery_tag) @@ -69,9 +88,7 @@ def main(): channel.queue_declare(queue=RABBITMQ_QUEUE, durable=True) channel.basic_qos(prefetch_count=1) channel.basic_consume(queue=RABBITMQ_QUEUE, on_message_callback=callback) - print(' [*] Esperando mensagens. Para sair: CTRL+C') - channel.start_consuming() if __name__ == "__main__":