Search code examples
djangoamazon-ec2rediscelery

unexpected keyword argument 'timeout' on Celery/Redis run on Django


I'm trying to set a environment on AWS (identical to another env I have that runs Celery perfectly) but I'm having this issue when I run celery -A core worker --loglevel=INFO

[2022-08-03 12:59:06,633: CRITICAL/MainProcess] Unrecoverable error: TypeError("wrapped_func() got an unexpected keyword argument 'timeout'")

I've already tried to upgrade and downgrade celery/redis/kumbu versions and nothing works.

I oppened a python shell on this EC2 and tested the Redis connection and its working

redis_client = redis.Redis(host=settings.REDIS_URL, port=6379)
redis_client.set('key', 'value', nx=True, ex=5)

I don't know what am I missing here.. My versions are

celery==5.2.7
Django==3.1
django-celery-beat==2.3.0
kombu==5.2.4
redis==4.3.4

pip==22.1.2
setuptools==58.0.0

Solution

  • Well, I solved it

    The problem was on this package I use to post messages to slack regarding celery's health: celery-slack

    celery-slack latest version is only compatible with celery < 5 and this implies downgrading all this modules too: amqp, vine, django-celery-beat, ephem, kombu

    So this versions work nicely together:

    vine==1.3.0
    kombu==4.6.11
    ephem==3.7.7.1
    django-celery-beat==1.5.0
    celery==4.4.7
    celery-slack==0.4.1
    amqp==2.6.1
    redis==4.3.4