Tengo aplicaciones de Facebook con matraz con nginx y uwsgi. Cuando se reciben post de Facebook, que siempre tiene un error:Error: readv() error (104: Restablecimiento de la conexión por pares) mientras lee en sentido ascendente
readv() failed (104: Connection reset by peer) while reading upstream
Pero cuando accedo a mis aplicaciones directamente (con el método GET), que transcurrió sin problemas. Lo que hice:
- Límite @ app.route con
POST
método solamente - no funciona. - Agregar límite en wsgi:
uwsgi_buffer_size
(en caso de que la solicitud de facebook sea grande), yuwsgi_harakiri
(en caso de que uwsgi proporcione tiempo de espera antes de finalizar la solicitud) - no funcione.
Tengo una solución alternativa en django pero todavía no sé cómo implementarla en el matraz. ¿Alguien podría ayudar, por favor?
la respuesta es un poco ridículo para mí. Tengo que procesar todos los datos de la publicación, incluso si mi proceso no está haciendo nada. si "nada" no está en request.form: pass. Su funcionamiento ... Por cierto, Facebook abre la aplicación con solicitud POST, así que debería agregar eso para cada ruta. Debe haber una mejor manera de hacerlo ... – asofyan
Si hay datos en un socket, debe leerlos (no hay otras opciones). En la wiki de matraz, puede encontrar un middleware para eludir este problema común en la configuración de proxy: http://flask.pocoo.org/snippets/47/ uWSGI puede ayudarlo con la opción --post-buffering, pero es solo una atajo, nada mágico en él. – roberto
Gracias por el snippet @roberto – asofyan