36 lines
858 B
Python
36 lines
858 B
Python
"""RQ Worker for processing background tasks."""
|
|
|
|
import redis
|
|
from loguru import logger
|
|
from rq import Worker, Queue, Connection
|
|
|
|
from app.infra.config import get_settings
|
|
|
|
settings = get_settings()
|
|
|
|
|
|
def main():
|
|
"""Start RQ worker to process thumbnail generation tasks."""
|
|
logger.info("Starting RQ worker for thumbnail generation...")
|
|
|
|
# Parse Redis URL
|
|
redis_url = settings.redis_url
|
|
logger.info(f"Connecting to Redis: {redis_url}")
|
|
|
|
# Connect to Redis
|
|
redis_conn = redis.from_url(redis_url)
|
|
|
|
# Listen to 'thumbnails' queue
|
|
with Connection(redis_conn):
|
|
worker = Worker(
|
|
[Queue("thumbnails")],
|
|
connection=redis_conn,
|
|
name="thumbnail-worker",
|
|
)
|
|
logger.info("Worker started, listening for tasks...")
|
|
worker.work()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|