django-signalqueue

Software screenshot:
django-signalqueue
Software ətraflı:
Version: 0.5.1
Tarixi Upload: 20 Feb 15
Geliştirici: Alexander Bohn
Lisenziya: Pulsuz
Məşhurluq: 7

Rating: 3.0/5 (Total Votes: 1)

Django framework sual edir ki, özlərini aid vaxt hər kəs müəyyən bir məbləği sonra: Mən, həqiqətən, Django nin siqnalları sevirəm. Amma yalnız mən asynchronously onlara göndərilməsi bilər. Kimi, bəzi digər mövzu və ya bir şey, mən həqiqətən bilmirəm .... elə mümkündürmü?
Yaxşı, indi siz asanlıqla Django-signalqueue ilə edə bilərsiniz.
Watch Mən sizə göstərmək lazımdır. Birincisi, Django-signalqueue bərpa edin:
$ Bu yüklemek Django-signalqueue # bərpa tırtıl tornado və Django-nümayəndəsi zəruri hallarda
Əgər siz artıq onlara yoxsa ... siz də, bu isteğe paketləri bəzi edə bilərsiniz:
$ Dəm Redis # s / dəm / apt-get / dad yajl quraşdırma
Redis bərpa Pip $ # tövsiyə hiredis
$ # Ujson tövsiyə yüklemek tırtıl
$ Çox czjson yajl simplejson # bu iş bərpa tırtıl
$ Testleri üçün burun Django-burun # bərpa PIP
Siz settings.py bile, sizin INSTALLED_APPS, və bir sıra üçün ayarları Django-signalqueue əlavə et
# Settings.py
INSTALLED_APPS = [
& Nbsp; 'signalqueue, # ...
]
SQ_QUEUES = {
& Nbsp; "default": {# Siz SQ_QUEUES ildə "default" adlı ən azı bir dict lazımdır
& Nbsp; 'ADI: "signalqueue_default, isteğe # - signalqueue_default" üçün u mənim
& Nbsp; 'ENGINE: "signalqueue.worker.backends.RedisSetQueue" tələb # - bu növbə sürücüsü edir
& Nbsp; "Interval: 30 # 1/3 sec
& Nbsp; 'OPTIONS: dict ()
& Nbsp;}
}
Ismarıcları SQ_RUNMODE = 'SQ_ASYNC_REQUEST' # istifadə async göndərilməsi
SQ_WORKER_PORT = 11231 # növbə işçi prosesi üçün məcburidir ki, port
Bütün Bundan əlavə, yalnız kök URLConf (The) signalqueue.autodiscover zəng lazımdır:
# Urls.py
idxal signalqueue
signalqueue.autodiscover ()
Siz async siqnalları müəyyən edə bilərsiniz!
Asynchronous siqnalları aşağıdakı yerlərdən birində müəyyən etdik signalqueue.dispatch.AsyncSignal hallarda var:
- Your_app / signals.py (siz artıq bu faylı istifadə əgər gözəl, kimi bir çox bunu)
- Bir settings.SQ_ADDITIONAL_SIGNALS siyahısı və ya Tuple adlı Modules
- Tezliklə: signalqueue.register () - belə ki, başqa yerdə onları qoymaq bilər.
AsyncSignals çox tanış Bildiyiniz django.dispatch.Signal hallarda və sevgi kimi müəyyən edilir:
# Yourapp / signals.py
signalqueue.dispatch idxal AsyncSignal dən
signalqueue.mappings olan ModelInstanceMap idxal
# Bu iki inşaatçılar eyni şey
my_signal = AsyncSignal (providing_args = ['instansiya']) yuge #
my_other_signal = AsyncSignal (providing_args = {'instansiya: ModelInstanceMap}) mappings ilə #
# Belə nə yerdə getmək bilər - yalnız hallarda yourapp / signals.py olmaq lazımdır:
def callback (göndərən ** kwargs):
& Nbsp; print "Mən% s, bununla sayəsində Django-signalqueue üçün% s asynchronously göndərilib edilmişdir." % (
& Nbsp; küç (kwargs ['instansiya']),
& Nbsp; göndərən .__ name__)
my_signal.connect (callback)
... Əsas fərq mapping dərsləri əvəzinə sadə siyahısı ilə bir dict kimi providing_args ifadə ikinci müəyyən edir. Biz sonra Xəritəçəkmə dərsləri izah edəcəyik, ancaq sizin siqnalları Django model hallarda keçən, əgər bu barədə narahat yoxdur.
Işçi çalışan sonra, belə ki, kimi növbə siqnal göndərə bilərsiniz:
>>> My_signal.send (göndərən = AModelClass, məsələn = a_model_instance)
Normal Django siqnal kimi siqnal yanğın üçün, bunu edə bilərsiniz:
>>> My_signal.send_now (göndərən = AModelClass, məsələn = a_model_instance)
Of ... Django-signalqueue README heyranedici bağlanması üçün sabah qur !!!!!!

tələblər

  • Python
  • Django

Geliştirici digər proqram Alexander Bohn

dwight
dwight

14 Apr 15

h5dj
h5dj

20 Feb 15

django-delegate
django-delegate

15 Apr 15

Şərh django-signalqueue

Şərhlər tapılmadı
Şərh əlavə
Images yandırın!