Flask
numaralı uygulamada bir uygulama yazıyorum, bu durum WSGI
'un senkronize ve engellenmesi dışında gerçekten iyi çalışıyor. Özellikle bir üçüncü taraf API'sine çağrı yapan bir görevim var ve bu görevin tamamlanması birkaç dakika sürebilir. Bu aramayı yapmak istiyorum (aslında bir dizi çağrı) ve çalışmasına izin verin. kontrol Flask'a geri döndü.Flask'ta eşzamansız bir görev gerçekleştirme
Bence şöyle görünür: Şimdi
@app.route('/render/<id>', methods=['POST'])
def render_script(id=None):
...
data = json.loads(request.data)
text_list = data.get('text_list')
final_file = audio_class.render_audio(data=text_list)
# do stuff
return Response(
mimetype='application/json',
status=200
)
, ne yapmak istiyorum hattını oluşturmak
final_file = audio_class.render_audio()
sürüyorsa ve Flask ederken, zaman yöntem döner yürütülecek bir geri arama sağlamak olduğunu can istekleri işlemeye devam et. Bu, asenkron olarak çalıştırmak için Flask'a ihtiyacım olan tek görevdir ve bunu en iyi nasıl uygulayacağımız konusunda tavsiyede bulunmak istiyorum. Ben Twisted
ve Klein
baktım, ama onlar Threading
yeterli olabilir, çünkü onlar overkill emin değilim.
Herhangi bir tavsiye çok takdir edilecektir.
DÜZENLEME
Veya belki Celery
bunun için iyi bir seçimdir?
Genellikle bunun için kereviz kullanıyorum ... aşırı sıkıcı olabilir ama afaik iş parçacığı web ortamlarında iyi çalışmıyor (iirc ...) –
Doğru. Evet - sadece Kereviz'i araştırıyordum. İyi bir yaklaşım olabilir. Flask ile uygulaması kolay mı? –
heh ben de bir soket sunucu kullanmak eğilimindedir (flask-socketio) ve evet oldukça kolay olduğunu düşündüm ... en zor kısmı herşeyi yüklüyordu –