Мое намерение состоит в том, чтобы извлечь конфигурационную форму задачи из 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:)