Я пытаюсь передать аргументы функции от вызова функции в маршруте фляги к задаче сельдерея.Я перепробовал много переменных и просто не могу понять это.Тьфу.Я уверен, что я просто упускаю что-то очевидное.Это довольно простая задача, которую я пытаюсь выполнить.Не сумасшедшийЯ просто хочу вызвать функцию в фоновом режиме и перенаправить на новую страницу.Код ниже
Маршрут фляги:
@application.route("/vrops-connect", methods=["GET","POST"])
def vrops_connect():
if request.method == "POST":
vropshost = request.form.get('vropshost')
vropsuser = request.form.get('vropsuser')
vropspass = request.form.get('vropspass')
customer_id = request.form.get('customer_id')
# test_call()
task = call_vrops_connect.delay(vropshost, vropsuser, vropspass, customer_id)
return redirect('get-json')
Задача Celery:
@celery.task(name='call.vrops.connect')
def call_vrops_connect(vropshost, vropsuser, vropspass, customer_id):
test_connect = 'call vrops connect was called '
with open('test_connect.log', 'a') as j:
j.write(test_connect)
vhost = vropshost
vuser = vropsuser
vpass = vropspass
cust_id = customer_id
pull_data_from_vrops(vhost, vuser, vpass, cust_id)
У меня есть test_call () без аргументов, который работает отлично.Когда я передаю аргументы, ничего не вызывается.У меня есть грязный способ создать журнал для тестирования.
Я пробовал несколько вариантов задержки и apply_async.
РЕДАКТИРОВАТЬ:
Вот некоторые из вариантов, которые я пробовал до сих пор.
test_call() # This works
call_vrops_connect.delay(vropshost, vropsuser, vropspass, customer_id) # This doesn't
task = call_vrops_connect.delay(vropshost, vropsuser, vropspass, customer_id) # This doesn't
call_vrops_connect.apply_async(args=[vropshost, vropsuser, vropspass, customer_id]) # This doesn't
call_vrops_connect.apply_async(kwargs={'vropshost': vropshost, 'vropsuser': vropsuser, 'vropspass': vropspass, 'customer_id': customer_id}) # This doesn't
task = call_vrops_connect.apply_async(args=[vropshost, vropsuser, vropspass, customer_id]) # This doesn't
task = call_vrops_connect.apply_async(kwargs={'vropshost': vropshost, 'vropsuser': vropsuser, 'vropspass': vropspass, 'customer_id': customer_id}) # This doesn't