2012-01-04 9 views
11

Tengo una parte muy pequeña de un sitio de Django que mantiene el estado de una sesión de chat moderada entre dos usuarios. Básicamente, el primer usuario habla durante 3 minutos (y nadie más puede), luego el segundo usuario habla, luego una pausa de 30 segundos, y el proceso se repite una vez más. Actualmente estoy usando la base de datos y un modelo de "RoomState" para administrar el estado actual de la sala (quién puede hablar, etc.). Las transiciones de estado se ven afectadas por el hecho de que el cliente envíe un mensaje POST de AJAX "ping" cada 10 segundos a una de mis vistas, que verifica si es hora de cambiar de estado.Proceso de fondo en Django sin apio

Esto funciona, pero definitivamente se siente hacky. Me preguntaba si había algo más liviano que django-apio + rabbitmq para administrar tareas de segundo plano de vida corta en un temporizador. Me doy cuenta de que la naturaleza de la web/Django es apátrida, pero solo quería ver si alguien tenía una sugerencia simple para administrar las transiciones de estado de una manera más confiable.

+1

Si rabbitmq es demasiado pesado, considera utilizar el servidor de Redis en su lugar. –

+0

Considere actualizar la respuesta seleccionada. – coleifer

+0

Estoy totalmente de acuerdo con OP cada vez que tenemos que actualizar Django o Aplery uno de los dos descansos. Estamos escaneando la web para el dolor de cabeza número 10 ahora. Apio tiene 496 problemas pendientes en git hub y un enorme número de 37 solicitudes de extracción que nunca serán retiradas. Todas las tareas programadas fueron confiables y el apio no. Los desarrolladores pierden su tiempo integrando otro backend nadie le importa. –

Respuesta

14

Autor de django-utils aquí, sugiero probar mi proyecto más nuevo Huey - tiene un conjunto de funciones más completo, mejores documentos, más estable y funciona con cualquier marco de python (incluido django). Docs.

7

Sólo conozco una alternativa a Apio que es más liviano: Queue in django-utils.

Otra forma es utilizar el módulo de subprocess directamente, pero es probable que tenga que resolver algunos problemas que ya están resueltos en apio y django-utils.

+1

Es posible que desee utilizar https://github.com/coleifer/huey en su lugar, ya no estoy manteniendo django-utils – coleifer

+0

Es probable que desee ver [Django Q] (https://github.com/Koed00/django -q /) que es específico de django y los objetivos declarados del autor son exactamente lo que estás pidiendo. FYI: No tengo afiliación y no conozco al autor. – eskhool

Cuestiones relacionadas