django-signalqueue

Software captura de pantalla:
django-signalqueue
Detalles de software:
Versión: 0.5.1
Fecha de carga: 20 Feb 15
Promotor: Alexander Bohn
Licencia: Libre
Popularidad: 7

Rating: 3.0/5 (Total Votes: 1)

Después de una cierta cantidad de tiempo a nadie en relación con el marco de Django se va a hacer la pregunta: Me encanta señales de Django, por cierto. Pero si tan sólo pudiera enviarlos de forma asíncrona. Al igual que, en algún otro hilo o algo, yo no lo sé .... ¿Eso es posible de alguna manera?
Bueno, ahora usted puede hacerlo fácilmente con django-signalqueue.
Mira, te voy a mostrar. En primer lugar, instale django-signalqueue:
$ Pip install django-signalqueue # esto instalará tornado y django-delegado si es necesario
... Usted puede también desear algunos de estos paquetes opcionales, si no los tiene ya:
$ Brew install redis yajl # s / cerveza / apt-get / al gusto
$ PIP instalar redis hiredis # recomendadas
$ Pip install ujson # recomendado
$ Pip instalar czjson yajl simplejson # éstos trabajan demasiado
$ Pip install nariz-django nariz # para las pruebas
Añadir django-signalqueue a tu INSTALLED_APPS, y la configuración de una cola, mientras estás en tu settings.py:
# Settings.py
INSTALLED_APPS = [
& Nbsp; "signalqueue ', # ...
]
SQ_QUEUES = {
& Nbsp; "por defecto": {# necesita al menos un dict llamado 'default' en SQ_QUEUES
& Nbsp; "nombre": "signalqueue_default ', # opcional - por defecto es' signalqueue_default '
& Nbsp; "motor": 'signalqueue.worker.backends.RedisSetQueue', # requerida - esto es el controlador de la cola
& Nbsp; "intervalo": 30, # 1/3 seg
& Nbsp; "OPCIONES": dict (),
& Nbsp;},
}
SQ_RUNMODE = 'SQ_ASYNC_REQUEST' # uso asíncrono envío por defecto
SQ_WORKER_PORT = 11231 # puerto su proceso de trabajo de cola se unirá a
Además de todo eso, sólo tiene una llamada a signalqueue.autodiscover () en su URLconf raíz:
# Urls.py
signalqueue importación
signalqueue.autodiscover ()
Puede definir señales asíncronas!
Señales asíncronas son instancias de signalqueue.dispatch.AsyncSignal que ha definido en uno de los siguientes lugares:
- Your_app / signals.py (que está bien si ya utiliza este archivo, como muchos lo hacen)
- Módulos señaladas en una lista o tupla settings.SQ_ADDITIONAL_SIGNALS
- Próximamente: signalqueue.register () - para que pueda ponerlos en otro sitio.
AsyncSignals están definidos al igual que los casos familiares de django.dispatch.Signal que conoces y amor:
# Yourapp / signals.py
desde signalqueue.dispatch AsyncSignal importación
desde signalqueue.mappings importar ModelInstanceMap
# Estos dos constructores hacen lo mismo
my_signal = AsyncSignal (providing_args = ['ejemplo']) # la yuge
my_other_signal = AsyncSignal (providing_args = {'ejemplo': ModelInstanceMap}) # con asignaciones
# Lo que sigue puede ir a ninguna parte - sólo los casos tienen que estar en yourapp / signals.py:
devolución de llamada def (remitente, ** kwargs):
& Nbsp; print "I,% s, he estado presente de forma asíncrona enviado por% s, gracias a django-signalqueue." % (
& Nbsp; str (kwargs ['ejemplo']),
& Nbsp; remitente .__ name__)
my_signal.connect (devolución de llamada)
... La principal diferencia es la segunda definición, que especifica providing_args como dict con clases de mapeo en lugar de una lista simple. Vamos a explicar las clases de mapeo más adelante, pero si estás pasando instancias de modelo de Django a sus señales, usted no tiene que preocuparse por esto.
Una vez que el trabajador está en ejecución, puede enviar la señal a la cola de este modo:
>>> My_signal.send (remitente = AModelClass, ejemplo = a_model_instance)
Para despedir a su señal como una señal normal de Django, usted puede hacer esto:
>>> My_signal.send_now (remitente = AModelClass, ejemplo = a_model_instance)
Sintonice mañana por la sorprendente conclusión de ... el README-django signalqueue !!!!!!

Requisitos :

  • Python
  • Django

Otro software de desarrollador Alexander Bohn

dwight
dwight

14 Apr 15

hdf5-django
hdf5-django

20 Feb 15

h5dj
h5dj

20 Feb 15

Comentarios a la django-signalqueue

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!