django-signalqueue

Софтуер снимки:
django-signalqueue
Софтуер детайли:
Версия: 0.5.1
Дата на качване: 20 Feb 15
Розробник: Alexander Bohn
Разрешително: Безплатно
Популярност: 7

Rating: 3.0/5 (Total Votes: 1)

След определен период от време, всеки, който се връзка с рамката Django ще зададем въпроса: Обичам сигнали Django е, наистина. Но ако само можех да ги съсече асинхронно. Подобно, по някакъв друг конец или нещо, аз наистина не знам .... някак възможно ли е това?
Е, сега можете лесно да направите това с Джанго-signalqueue.
Гледай, аз ще ви покажа. На първо място, инсталиране на Джанго-signalqueue:
$ Пипс инсталирате Джанго-signalqueue # Това ще инсталира торнадо и Джанго-делегат, ако е необходимо
... Може също да искате някои от тези опции, се ако не ги има вече:
$ Варя инсталирате преразпределяне yajl # S / варя / ап-да / вкус
$ PIP инсталирате преразпределяне hiredis # препоръча
$ Пипс инсталирате ujson # препоръчва
$ Пипс инсталирате czjson yajl simplejson # тях работа твърде
$ PIP инсталирате носа Джанго-носа # за тестовете
Добави Джанго-signalqueue да си INSTALLED_APPS, и настройките за режим на изчакване, докато сте във вашата settings.py:
# Settings.py
INSTALLED_APPS = [
& Nbsp; "signalqueue", # ...
]
SQ_QUEUES = {
& Nbsp; "неизпълнение": {# имате нужда от най-малко един Dict име "по подразбиране" в SQ_QUEUES
& Nbsp; "NAME": "signalqueue_default", # желание - по подразбиране е "signalqueue_default"
& Nbsp; "двигател": "signalqueue.worker.backends.RedisSetQueue", # необходимо - това е водач си опашка за
& Nbsp; "период": 30, # 1.3 сек
& Nbsp; "Настройки": Dict (),
& Nbsp;},
}
SQ_RUNMODE = "SQ_ASYNC_REQUEST" # ползване асинхронен изпращане по подразбиране
SQ_WORKER_PORT = 11231 # пристанището си процес опашка работник ще се свърже с
Освен всичко това, просто трябва покана да signalqueue.autodiscover () във вашия корен URLConf:
# Urls.py
внос signalqueue
signalqueue.autodiscover ()
<Силни> Можете да определите асинхронен сигнали!
Асинхронни сигнали са случаи на signalqueue.dispatch.AsyncSignal че сте определени в един от следните места:
- Your_app / signals.py (това е добре, ако вече използвате този файл, като много от тях)
- Modules, посочени в списъка на settings.SQ_ADDITIONAL_SIGNALS или кортеж
- Очаквайте скоро: signalqueue.register () - така че можете да ги поставите на друго място.
AsyncSignals са определени много прилича на познатите случаи на django.dispatch.Signal които познавате и обичате:
# Yourapp / signals.py
от signalqueue.dispatch внос AsyncSignal
от signalqueue.mappings внасят ModelInstanceMap
# Тези два конструктора направят същото
my_signal = AsyncSignal (providing_args = ['например']) # на Yuge
my_other_signal = AsyncSignal (providing_args = {"например": ModelInstanceMap}) # с преобразувания
# Какво следва да отидете навсякъде - само за случаите, трябва да бъде в yourapp / signals.py:
Def обаждане (подател, ** kwargs):
& Nbsp; печат "I,% S, са се експедират асинхронно с% S, благодарение на Джанго-signalqueue." % (
& Nbsp; ул (kwargs ["например"]),
& Nbsp; подател .__ name__)
my_signal.connect (обаждане)
... Основната разлика е втората дефиниция, която определя providing_args като Dict с картографиране класове вместо обикновен списък. Ние ще обясним картографиране класове по-късно, но ако се минава Django моделни случаи на вашите сигнали, не е нужно да се притеснявате за това.
След като работникът работи, можете да изпратите сигнал към опашката така:
>>> My_signal.send (подател = AModelClass, например = a_model_instance)
За пожароизвестяване си като нормален Django сигнал, можете да направите това:
>>> My_signal.send_now (подател = AModelClass, например = a_model_instance)
Настройте утре за удивителния сключването на ... на Джанго-signalqueue README !!!!!!

<силни> Изисквания :

    <Ли > Python
  • Django

Друг софтуер на разработчика Alexander Bohn

dwight
dwight

14 Apr 15

hdf5-django
hdf5-django

20 Feb 15

h5dj
h5dj

20 Feb 15

Коментари към django-signalqueue

Коментари не е намерена
добавите коментар
Включете на изображения!