私はDjangoビューで同時に2つのPOSTリクエストをAPIから作成したいと考えています。Python Asyncio in Django View
これは私がdjangoの外で行う方法です。
import asyncio
import speech_recognition as sr
async def main(language1, language2):
loop = asyncio.get_event_loop()
r = sr.Recognizer()
with sr.AudioFile(path.join(os.getcwd(), "audio.wav")) as source:
audio = r.record(source)
def reco_ibm(lang):
return(r.recognize_ibm(audio, key, secret language=lang, show_all=True))
future1 = loop.run_in_executor(None, reco_ibm, str(language1))
future2 = loop.run_in_executor(None, reco_ibm, str(language2))
response1 = await future1
response2 = await future2
loop = asyncio.get_even_loop()
loop.run_until_complete(main("en-US", "es-ES"))
私はイベントループについて混乱しています。私はこれをDjangoビューの中でどうやって行うことができますか?これにネストされた関数を使用する必要がありますか?
def ibmaudio_ibm(request, language1, language2):
#Asyncio code here
編集:どのようにこれも重複と見なされますか? crontabでの並列呼び出しとschedullingはまったく別のものです...
http://channels.readthedocs.io/en/stable/faqs.html#why-are-you-doing-this-rather-than-just-using-tornado-gevent-asyncio-etc –
[djangoでasyncioを使って定期的にタスクを実行する]の可能な複製(https://stackoverflow.com/questions/43838872/using-asyncio-to-do-periodic-task-in-django) – e4c5
@ e4c5何もしない私はパラレルコールを望んでいます...重複しても近くにありません – Juanvulcano