2012-11-11 42 views
13

Tôi đã làm việc trên ứng dụng Flask xử lý tin nhắn SMS bằng Twilio, lưu trữ chúng trong cơ sở dữ liệu và cung cấp quyền truy cập vào giao diện người dùng thông qua các yêu cầu GET của JSONP. Tôi đã sử dụng công cụ giám sát, điều này dường như hoạt động khá tốt, nhưng cứ vài ngày nó bắt đầu treo (tức là tất cả các yêu cầu đều không đổi hoặc hết thời gian) và tôi phải khởi động lại quy trình. Tôi đã nghi ngờ rằng sqlite3 bằng cách nào đó bị chặn đôi khi, nhưng thử nghiệm gần đây nhất của tôi là viết một phương thức yêu cầu không liên quan đến truy cập cơ sở dữ liệu, và đó là thời gian quá. Tôi cực kỳ bối rối - hy vọng bạn đã thấy một cái gì đó tương tự hoặc biết những gì có thể gây ra điều này.Ứng dụng Flask thỉnh thoảng treo

Mã liên quan có thể tìm thấy here, và nó hiện đang chạy (và bị đình trệ, như của bài viết này) trên VPS của tôi tại mattnichols.net:6288

Cảm ơn!

Cập nhật: bạn có nghĩ đây có thể là vấn đề với máy chủ của Flask không? Tôi muốn tin rằng gói ứng dụng của tôi với Tornado (hoặc một cái gì đó tương tự) có thể giải quyết vấn đề, nhưng tôi cũng chạy những thứ khác lâu hơn mà không gặp vấn đề khi sử dụng máy chủ dev.

+1

Bạn có thể đang chạy hết các chốt xử lý mở, đặc biệt nếu mã này nhận được nhiều yêu cầu. Điển hình ulimit là 4096. Hãy thử tăng điều đó, hoặc - thậm chí tốt hơn - di chuyển ra khỏi sqlite và sử dụng một tài liệu db. Bạn không cần chi phí quan hệ để lưu trữ tin nhắn SMS. –

+0

Cảm ơn các đề xuất của bạn - Tôi thực sự nhận được hầu như không có yêu cầu tại thời điểm này, và tôi khá chắc chắn vấn đề này không liên quan đến DB. Tuy nhiên, quan điểm của bạn về sự không cần thiết của chi phí quan hệ là tại chỗ, tôi chắc chắn sẽ xem xét chuyển sang một DB dựa trên tài liệu. – man1

+0

Tôi đã tìm thấy rằng đối với tôi, máy chủ Flask dev đôi khi sẽ cực kỳ laggy trên một số máy tính (tôi nghĩ rằng đó là vì một số vấn đề liên quan đến IPv6, mặc dù tôi không nhớ nữa). Tôi đã có may mắn hơn chạy ứng dụng Flask của tôi trên một máy chủ CherryPy (liên kết: http://flask.pocoo.org/snippets/24/) – Michael0x2a

Trả lời

9

Để ghi lại, điều này dường như đã được giải quyết bằng cách chạy ứng dụng của tôi bằng Tornado thay vì máy chủ Flask dev. Gói mã Flask của tôi vào máy chủ Tornado rất dễ dàng khi tôi quyết định làm như vậy: tham khảo http://flask.pocoo.org/docs/deploying/wsgi-standalone/#tornado nếu bạn thấy mình trong tình huống tương tự.

+2

Cảm ơn bạn rất nhiều vì đã đăng bài này! Tornado dường như đang giải quyết vấn đề cho tôi. Vui lòng liên kết tới http://stackoverflow.com/questions/11150343/slow-requests-on-local-flask-server. – gatoatigrado

+0

Ứng dụng Flask của tôi thậm chí chưa được triển khai, nhưng đã bị treo vì lý do không xác định. Vâng, tôi đã không khởi động lại máy tính của tôi kể từ hôm qua. Trong mọi trường hợp, vấn đề được giải quyết, cảm ơn. –

+0

Tôi đã gặp vấn đề tương tự và dường như cũng đã khắc phục sự cố đó cho tôi. Cảm ơn –

Các vấn đề liên quan