Я создал Flask API для своего веб-мастера и хочу запустить его, когда получен запрос POST, и как только он начнет работать, верните ответ вместо ожидания завершения работы скребка.
I 'я только начал пытаться внедрить asyncio в мой код, но я не понимаю, как я могу пропустить ожидание ответа, я тестировал приведенный ниже код с почтальоном, но он все еще зависает в ожидании ответа
Этомой код пока:
import subprocess
from flask import Flask
import asyncio
application = Flask(__name__)
async def parse_request(data):
command = './portal_scrape.py -us "{user}" -p "{password}"-url "{url}"'.format(**data)
output = subprocess.check_output(['bash','-c', command])
@application.route('/scraper/run', methods=['POST'])
def init_scrape():
loop = asyncio.get_event_loop()
# I want task1 to start running and then return data to postman
task1 = asyncio.ensure_future(parse_request(request.json))
loop.run_until_complete(task1)
return jsonify({'Scraping this site: ': "url"}), 201
except Exception as e:
print(e)
if __name__ == '__main__':
application.run(host="0.0.0.0", port="8080")