2012-11-11 30 views
13

Twilio'yu kullanarak SMS mesajlarını işleyen, bunları bir veritabanında depolayan ve JSONP GET istekleri ile bir ön cihaza erişim sağlayan bir Flask uygulamasında çalışıyorum. Oldukça iyi çalışıyor gibi gözüken süpervizörü kullanarak onu tasarladım, ama her birkaç günde bir asmaya (yani, tüm istekleri sonsuza dek ya da zaman aşımına uğruyor) ve süreci yeniden başlatmam gerekiyor. (Aynı zamanda nohup, ama aynı problemle de çalıştırmayı denedim.) Sqlite3'ün bir şekilde ara sıra engellendiğinden şüphelendim, ama en son testim veritabanı erişimi içermeyen bir istek yöntemi yazmaktı ve bu zaman aşımına uğradı. çok. İnanılmaz derecede şaşırdım - umarım benzer bir şey görmüşsünüz ya da buna neyin sebep olduğunu biliyorsunuzdur. Flask uygulaması bazen asılı

ilgili kod

here bulunabilir ve şu anda çalışıyor (ve bu yazı itibariyle, durdu) mattnichols.net:6288

teşekkür benim VPS!

Güncelleme: Sence bu Flask'ın dev sunucusuyla ilgili bir sorun olabilir mi? Uygulamamı Tornado'yla (veya benzer bir şeyle) sarmalamanın sorunu çözebileceğine inanmak isterim, ancak aynı zamanda dev sunucusunu kullanırken problem yaşamadan başka şeyleri de daha fazla çalıştırıyorum.

+1

Özellikle bu kod çok sayıda istek alıyorsa, açık dosya tanıtıcıları tükeniyor olabilir. Tipik ulimit 4096'dır. Bunu arttırmayı deneyin, veya - daha da iyisi - sqlite'den uzaklaşın ve bir belge db kullanın. SMS mesajlarını saklamak için ilişkisel yüklere ihtiyacınız yoktur. –

+0

Önerileriniz için teşekkürler - Aslında bu noktada neredeyse hiç istek alıyorum ve bu sorunun DB ile ilgili olmadığından eminim. İlişkisel yükün gerekliliği hakkındaki noktanız yine de üzerinde durmaktadır, kesinlikle belge tabanlı bir DB'ye geçmeyi düşüneceğim. – man1

+0

Bana göre, Flask dev sunucusunun bazen bazı bilgisayarlarda inanılmaz derecede sarsıcı olacağını fark ettim (bunun artık IPv6 ile ilgili bazı sorunlar nedeniyle olduğunu düşünüyorum). Benim Flask uygulamasını bir CherryPy sunucusunda çalıştırırken daha iyi şanslar elde ettim (link: http://flask.pocoo.org/snippets/24/) – Michael0x2a

cevap

9

Kayıt için, bu, Flask dev sunucusu yerine Tornado'yu kullanarak uygulamanızı çalıştırarak çözülmüş görünüyor. Flask kodumu bir Tornado sunucusuna sarmak, bunu yapmaya karar verdiğimde çok kolaydı: Kendinizi aynı durumda bulursanız http://flask.pocoo.org/docs/deploying/wsgi-standalone/#tornado'a danışın.

+2

Bunu yazdığınız için çok teşekkür ederim! Kasırga benim için problemi çözüyor gibi görünüyor. Lütfen http://stackoverflow.com/questions/11150343/slow-requests-on-local-flask-server adresine de bağlantı verin. – gatoatigrado

+0

Benim Flask uygulaması henüz dağıtılmadı, ancak bilinmeyen nedenlerle asılıydı. Eh, dünden beri bilgisayarımı yeniden başlatmamıştım. Her durumda sorun çözüldü, teşekkürler. –

+0

Aynı sorunu yaşadım ve benim için de düzeltiyor gibiydi. Teşekkürler –