2016-03-19 9 views
1

aşağıdaki şey yapması gerekir Flask kullanarak küçük bir web sunucusu yazıyorum: İlk Talep üzerineFlask ve uzun süren görevler

  1. , (15-60 temel sayfasına yönlendirir ve uzun tekme ikinci) veri işleme görevi. Veri işleme görevi, kontrol etmediğim ikinci bir sunucuyu sorgular, yerel bir veritabanını günceller ve daha sonra web sayfasında gösterilecek sonuçlarda bazı hesaplamalar yapar.
  2. Sayfanın tümü, uzun görevden sonuçların parçalarına bağlı olan birkaç AJAX isteği yayınlıyor, bu yüzden işlem tamamlanana kadar beklemem gerekiyor. onlar gelir eğer işleme görevi (hatta kısa bir süre sonra ya) sürmekte iken ilk sayfa için
  3. İzleyen istekler ideal olarak

kullanıyorum çalıştı önceki isteğin sonucu yeniden kullanmak istiyorsunuz balon-cache (özellikle SimpleCache) ancak tam olarak nesneyi tutmayı tercih ettiğimde, önbellek sonucu seçen bir sorunla karşılaştım.

Önbelleğe alınabildiğim şeyleri yeniden yazabildiğimi yeniden yazabilirim ve sonra işlemi yapmak için tek bir çalışan iş parçacığı uygulayabilirim.

Bu tür iş akışını işlemenin daha iyi bir yolu var mı?

cevap

2

Uzun veri işleme için en iyi yolun Celery gibi bir şey olduğunu düşünüyorum.

  1. Görev çalıştırmak ve görev kimliği almak için istek göndermek.
  2. Görev ilerlemesini kontrol etmek ve görev yürütme sonucunu almak için düzenli olarak ajax istekleri gönderin.