Estoy escribiendo una aplicación de Python que necesita concurrencia y asincronismo. He recibido algunas recomendaciones para Twisted and Aplery, pero estoy teniendo problemas para determinar cuál es la mejor opción para esta aplicación (tampoco tengo experiencia con ninguna).Twisted or Celery? ¿Cuál es el adecuado para mi aplicación con muchas llamadas SOAP?
La aplicación (que no es una aplicación web) se centra principalmente en realizar llamadas SOAP a varias API de terceros. Para procesar un dato dado, tendré que llamar varias API secuencialmente. Y me gustaría poder tener un grupo de "trabajadores" para cada una de estas API, así puedo hacer más de 1 llamada por vez a cada API. Nada de esto debería ser muy intensivo en la CPU.
Más específicamente, un proceso externo agregará un nuevo "Mensaje" a la base de datos de esta aplicación. Necesitaré un trabajo que busque nuevos mensajes y luego los empuje a través del Proceso. El proceso contendrá 4-5 pasos que deben suceder en orden, pero pueden ocurrir de manera completamente asincrónica. Cada paso tomará el mensaje y actuará de alguna manera, típicamente agregando detalles al mensaje. Cada paso posterior requerirá la salida del paso que lo precede. Para la mayoría de estos Pasos, el trabajo involucrado se centra en llamar a una API de terceros, generalmente con un cliente SOAP, analizar la respuesta y actualizar el mensaje. Algunos casos implicarán la creación de un archivo binario (más difícil de eliminar, si ese es un factor). En última instancia, una vez que se haya completado el último paso, tendré que actualizar un indicador en la base de datos para indicar que todo el proceso está hecho para este mensaje.
Además, dado que cada paso implicará esperar una respuesta de red, me gustaría aumentar el rendimiento general haciendo múltiples solicitudes simultáneas en cada paso.
¿Es Apio o Torcido un marco más apropiado aquí? Si ambos resuelven el problema adecuadamente, ¿hay pros/contras para usar uno frente al otro? ¿Hay algo más que debería considerar en su lugar?
Puede darnos mucha más información? Tal elección va a estar más influenciada por la preferencia personal con la información que usted ha dado que algo más concreto en cuanto a qué es lo que mejor conserva la biblioteca. – wheaties
@Wheaties: sí, absolutamente. Simplemente no estoy seguro de qué información sería útil. ¿Tienes alguna pregunta para guiarme? –
"mantener" -> "cada uno". Oops. En cuanto a las preguntas, no sé. ¿Puede enumerar los aspectos más importantes que está buscando en un marco? Quizás eso nos ayude a guiarlo en su elección. – wheaties