Type Error: Keywords must be string

Viewed 858

I am trying to dynamically execute some tasks in celery using python 2.7 with the help of celerybeat-mongo as I want celery to dynamically pick up task details from mongo database. Here is my sample code:

from celery import Celery

app = Celery('tasks', broker='redis://localhost')

app.config_from_object('celeryconfig')

@app.task
def add(x, y):
    return int(x) + int(y)

and according to documentation of celerybeat-mongo celerybeat-mongo

my mongodb document is as

{
    "_id" : ObjectId("59786aa52f3dd74f7a2943d4"),
    "_cls" : "PeriodicTask",
    "name" : "Addition",
    "task" : "task.add",
    "enabled" : true,
    "interval" : {
        "every" : 1,
        "period" : "minute"
    },
    "args" : [
        "2",
        "5"
    ],
    "kwargs" : {
        "max_targets" : "100"
    }
}

and when I try to execute the following command:

celery beat -S celerybeatmongo.schedulers.MongoScheduler

it shows error as-

[2017-07-26 15:44:19,729: WARNING/MainProcess] File "/home/username/.venvs/cel/local/lib/python2.7/site-packages/celerybeatmongo/models.py", line 38, in schedule
[2017-07-26 15:44:19,730: WARNING/MainProcess] return celery.schedules.schedule(datetime.timedelta(**{self.period: self.every}))
[2017-07-26 15:44:19,730: WARNING/MainProcess] TypeError
[2017-07-26 15:44:19,730: WARNING/MainProcess] :
[2017-07-26 15:44:19,730: WARNING/MainProcess] keywords must be strings

I don't understand which keywords it is pointing to ?

0 Answers
Related