Маршрут склянки для передачи арг в задачу сельдерея - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь передать аргументы функции от вызова функции в маршруте фляги к задаче сельдерея.Я перепробовал много переменных и просто не могу понять это.Тьфу.Я уверен, что я просто упускаю что-то очевидное.Это довольно простая задача, которую я пытаюсь выполнить.Не сумасшедшийЯ просто хочу вызвать функцию в фоновом режиме и перенаправить на новую страницу.Код ниже

Маршрут фляги:

@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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...