django-signalqueue

Programinė įranga Screenshot:
django-signalqueue
Programinė detalės:
Versija: 0.5.1
Įkėlimo datą: 20 Feb 15
Kūrėjas: Alexander Bohn
Licencija: Nemokamai
Populiarumas: 7

Rating: 3.0/5 (Total Votes: 1)

Po tam tikro laiko visiems apie save su Django sistema ketina užduoti klausimą: aš myliu Django signalai, iš tikrųjų. Bet jei tik galėčiau išsiųsti juos asinchroniškai. Kaip, nuo kitu siūlu ar kažką, aš tikrai nežino .... Ar tai kažkaip įmanoma?
Na, dabar jūs galite lengvai padaryti su django-signalqueue.
Žiūrėti, aš jums parodysiu. Pirma, įdiekite Django-signalqueue:
$ Pip įdiegti django-signalqueue # ši bus įdiegti tornadas ir django-delegatas, jei reikia,
... Taip pat galite kai kurias iš šių pasirenkamųjų paketai, jei jų neturite jau:
$ Užvirinti įdiegti REDIS yajl # s / užvirinti / apt-get / skonį
$ PIP įdiegti REDIS hiredis # rekomenduojama
$ Pip įdiegti ujson # rekomenduojama
$ Pip įdiegti czjson yajl simplejson # tai darbas per
$ PIP įdiegti nosies Django-nosies # bandymams
Pridėti Django-signalqueue savo INSTALLED_APPS ir už eilėje nustatymus, o jūs savo settings.py:
# Settings.py
INSTALLED_APPS = [
& Nbsp; "signalqueue" # ...
]
SQ_QUEUES = {
& Nbsp; "numatytoji": {# jūs turite bent vieną dict pavadintą "pagal nutylėjimą" į SQ_QUEUES
& Nbsp; "PAVADINIMAS": "signalqueue_default" # neprivaloma - pagal nutylėjimą "signalqueue_default"
& Nbsp; "VARIKLIS": "signalqueue.worker.backends.RedisSetQueue" # reikalaujama - tai Jūsų eilė vairuotojas
& Nbsp; "Intervalas": 30 # 1/3 sek
& Nbsp; "OPTIONS": žodynų (),
& Nbsp;}
}
SQ_RUNMODE = '' SQ_ASYNC_REQUEST # naudojimas async siuntimas pagal nutylėjimą
SQ_WORKER_PORT = 11231 # uosto jūsų eilė darbuotojas procesas bus įpareigoti
Be viso to, jums tereikia paskambinti signalqueue.autodiscover () jūsų šaknies URLConf:
# Urls.py
importo signalqueue
signalqueue.autodiscover ()
Galite nustatyti async signalus!
Asinchroniniai signalai atvejų signalqueue.dispatch.AsyncSignal kad jūs apibrėžta vienoje iš šių vietų:
- Your_app / signals.py (tai gerai, jei jau naudoti šį failą, nes daugelis padaryti)
- Moduliai pavadintas į settings.SQ_ADDITIONAL_SIGNALS sąrašą arba kortežą
- Netrukus: signalqueue.register () - todėl jūs galite įdėti juos kur nors kitur.
AsyncSignals apibrėžiami panašiai kaip pažįstamas atvejų django.dispatch.Signal žinote ir meilės:
# Yourapp / signals.py
nuo signalqueue.dispatch importo AsyncSignal
nuo signalqueue.mappings importuoti ModelInstanceMap
# Šie du konstruktoriai padaryti tą patį,
my_signal = AsyncSignal (providing_args = ['egzempliorius']) # Yuge
my_other_signal = AsyncSignal (providing_args = {"atvejis": ModelInstanceMap}) # su rodymo
# Kas taip gali eiti bet kur - tik atvejais reikia būti yourapp / signals.py:
Def atgalinių (siuntėjas, ** kwargs):
& Nbsp; spausdinti "Aš,% s buvo iš dalies išsiunčiami asinchroniškai% s, dėka django-signalqueue". % (
& Nbsp; g (kwargs ['egzempliorius']),
& Nbsp; siuntėjas .__ name__)
my_signal.connect (atgalinių)
... Pagrindinis skirtumas yra Antrasis apibrėžimas, kuriame nurodyta providing_args kaip dict su žemėlapių klasių vietoj paprasto sąrašo. Mes paaiškinsime žemėlapių klases vėliau, tačiau, jei jūs artimųjų Django modelio pavyzdžių savo signalus, jūs neturite nerimauti apie tai.
Kai darbuotojas veikia, galite siųsti signalą į panašiai kaip eilėje:
>>> My_signal.send (siuntėjas = AModelClass, pavyzdžiui, = a_model_instance)
Į ugnį savo signalą kaip normalus Django signalą, jūs galite tai padaryti:
>>> My_signal.send_now (siuntėjas = AModelClass, pavyzdžiui, = a_model_instance)
Nusistatykite rytoj už stebina sudarymo ... su django-signalqueue README !!!!!!

Reikalavimai :

  • Python
  • Django

Kita programinė įranga kūrėjas Alexander Bohn

dwight
dwight

14 Apr 15

django-delegate
django-delegate

15 Apr 15

h5dj
h5dj

20 Feb 15

Komentarai django-signalqueue

Komentarai nerastas
Pridėti komentarą
Pasukite ant paveikslėlio!