Python - Jak se signály odlišné od PubSub?

hlasů
28

Django a baňka využívat signálů - druhý používá blikač knihovnu. V souvislosti s Python, blikačem a Python PubSub knihovny, jak se signály a PubSub srovnat? Kdy se používá jeden nebo druhý?

Položena 04/03/2011 v 21:33
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
5

To by mohlo objasnit, jak přesně PubSub týká signálů: http://pubsub.sourceforge.net/apidocs/concepts.html

PubSub usnadňuje oddělení složek (callables, moduly, balíčky) v rámci aplikace. Je to tím, že:

  • Dovolovat části žádosti posílat zprávy do „zbytku aplikace“, aniž by museli znát
    • pokud zprávy budou zpracovány:
      • snad zpráva bude zcela ignorovat,
      • nebo manipulaci s mnoha různými částmi žádosti;
    • jak bude nakládáno zprávy:
      • co bude dělat se zprávou a její obsah;
      • v jakém pořadí budou kterýkoli daný zpráva odeslaná do ostatních částí žádosti;
  • Dovolovat části žádosti přijímat a zpracovávat zprávy od „zbytku aplikace“, aniž by museli vědět, kdo poslal zprávy.

Posluchač je „součástí aplikace, která chce přijímat zprávy“. Posluchač se hlásí k jednomu nebo více tématům. Odesílatel je nějaká část žádosti, která se dotazuje PubSub poslat zprávu o dané téma. Odesílatel poskytuje údaje, pokud existuje. PubSub pošle zprávu, včetně veškerých údajů, pro všechny posluchače tématem zprávy.

Odpovězeno 07/03/2011 v 02:30
zdroj uživatelem

hlasů
14

Blikač docs a PubSub dokumenty .

Pokud jde Blinkera PubSubjít, jsou to samé. Rozdíl je v tom, jak jít na to:

S Blinkerkdyž se přihlásíte na signál dát název signálu a při aktivaci signálu předat objekt aktivační.

S PubSubkdyž se přihlásíte k posluchači vám dát jméno (stejné jako Blinker), ale když si uvědomí posluchače předat data přímo jako argumenty klíčových slov. Vzhledem ke klíčové slovo metodou argumentů předávání dat je možné mít mnoho dalších bezpečnostních kontrol pomocí PubSub.

Osobně bych jít s Signalsjak to odpovídá můj způsob myšlení lepší, ale PubSubrozhodně má své místo také.

Odpovězeno 12/02/2013 v 00:30
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more