Fondo
Tengo una aplicación web que creará una imagen a partir de la entrada del usuario. La creación de la imagen podría tomar hasta un par de segundos.¿Requiere esta aplicación web una cola de tareas?
Problema
Si dejo que el hilo del servidor, que está manejando la solicitud/respuesta también generar la imagen, que va a atar un hilo por un par de segundos, y posiblemente empantanar mi servidor, afectan al rendimiento , matar a los cachorros, etc.
pregunta
¿Debo usar una cola de tareas, tales como Celery, por lo que el servidor puede entregar fuera de la creación de la imagen, y volver a la manipulación de las peticiones/respuestas? No tengo problemas para dejar que el usuario que está creando la imagen espere, pero no quiero que afecte el acceso de otras personas al sitio.
+1: Y ... si usa Apache, manejará una gran cantidad de almacenamiento en búfer y concurrencia para usted. De hecho, con mod_wsgi, puede tener muchos, muchos procesos back-end ejecutándose simultáneamente. Hasta su punto de referencia, no puede estar seguro, pero la carga de trabajo que puede manejar es a menudo enorme. –
Ok. Gracias por ahorrarme N horas de trabajo. La principal preocupación para mí fue que un par de segundos _siempre fue así. Uno de mis objetivos personales era proporcionar una buena interfaz de usuario, y pensé que el usuario miraba una pantalla en blanco durante unos segundos mientras la imagen se generaba, y se enviaba. estaría bajo par. Si hubiera una cola, al menos podría sondearlos y mantenerlos ocupados con un mensaje o algo para mirar. –
@random_person: "mirando a una pantalla en blanco"? ¿Cómo puede una página HTML presentar una "pantalla en blanco"? ¿Cómo haces eso? Sobre todo cuando presento un formulario, miro la página anterior por un tiempo. Luego, la página se reemplaza de repente. Además, muchas personas prefieren los idlers en Javascript para mostrar algo de acción. Pero no sé cómo hacer una "pantalla en blanco" en un navegador. ¿Puedes explicar eso? –