Ошибка выполнения задачи Python-celery (v4.1.0) с ошибкой номера аргумента - PullRequest
0 голосов
/ 23 мая 2018

Мое намерение состоит в том, чтобы извлечь конфигурационную форму задачи из MongoDB, чтобы начать экспорт моих задач (args).Но только получил ошибку: export() takes 0 positional arguments but 15 were given, вот файл конфигурации:

from celery.schedules import crontab
from exportUtils import MongodbUtils

broker_url = 'amqp://ops:123465@127.0.0.1:5672/tasks'
mongo_uri = "mongodb://task:task@localhost/task_config?authMechanism=SCRAM-SHA-1"
beat_schedule = {}

client = MongodbUtils(mongo_uri)
tasks = client.find("task_config", "cron_tasks", {"is_enabled": True})
client.close()
for task in tasks:
    crons = task["crontab_string"].split()
    schedule = crontab(hour=crons[0], minute=crons[1], day_of_week=crons[4], day_of_month=crons[2], month_of_year=crons[3])
    beat_schedule[task["task_name"]] = {
        'task': task["task_def"],
        'schedule': schedule,
        'args': (task["args"])
    }
print(beat_schedule)

Экспорт задачи ():

@app.task
def export(paras):
    client = MySQLUtils(paras)
    cols, rows = client.execute_sql(paras["script"])
    export_to_xls(paras["output"], cols, rows)

Я предполагаю, что args в export () имеет тип dictи beat_schedule должно быть, как показано ниже, так как я распечатал его в своем терминале:

{'test_demo': 
    {'task': 'tasks.export', 
     'schedule': <crontab: * */1 * * * (m/h/d/dM/MY)>, 
     'args': {'receivers': 'lizhi@qq.com', 
     'content': 'Welcome', 
     'output': 'export.xls'
     .....
    }
 }}

Я изменил экспорт (пункты) на экспорт (** пункты), все же не повезло, кто-нибудь, пожалуйста, помогите здесь?Если потребуется дополнительная информация, также дайте мне знать.Thx:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...