Celery has flexibility for message backends, but prefers RabbitMQ which comes with its own operations overhead, and does not have real horizontal scaling built in (it has failover techniques). RabbitMQ is great for mission critical messaging that survive system restarts.
My biggest worry is relying on Redis or MySQL. What happens if workers stop consuming tasks, wouldn’t that balloon the redis memory consumption pretty quickly? I suppose memory consumption is a factor of load and task bytesize. MySQL on the other hand feels like the wrong tool for this job.