zc.monitor

Sagteware kiekie:
zc.monitor
Sagteware besonderhede:
Weergawe: 0.3.1
Upload datum: 14 Apr 15
Ontwikkelaar: Jim Fulton
Lisensie: Gratis
Populariteit: 59

Rating: nan/5 (Total Votes: 0)

zc.monitor is 'n bediener wat 'n opdrag-lyn koppelvlak verskillende stukkies inligting nbsp & te versoek;. Die bediener is zc.ngi gebaseer is, sodat ons kan die zc.ngi toets infrastruktuur gebruik om dit te demonstreer.
& Nbsp; >>> invoer zc.ngi.testing
& Nbsp; >>> invoer zc.monitor
& Nbsp; >>> verband = zc.ngi.testing.TextConnection ()
& Nbsp; >>> bediener = zc.monitor.Server (verbinding)
Die bediener ondersteun 'n extensible stel instruksies. Dit lyk op bevele soos genoem zc.monitor.interfaces.IMonitorPlugin "nuts", soos gedefinieer deur die zope.component pakket.
Om dit te sien, sal ons 'n hallo plugin:
& Nbsp; >>> def hallo (verband, naam = "wêreld"):
& Nbsp; ... "" "Sê hallo
& Nbsp; ...
& Nbsp; ... Verskaf 'n naam as jy nie die hele wêreld.
& Nbsp; ... "" "
& Nbsp; ... connection.write ("! Hi% s, mooi ya te ontmoet n"% name)
en registreer dit:
& Nbsp; >>> zc.monitor.register (hallo)
Wanneer ons registreer 'n opdrag, kan ons 'n naam gee. Om dit te sien, gaan ons weer te registreer hello:
& Nbsp; >>> zc.monitor.register (hello, "Haai")
Nou kan ons die hallo opdrag aan die bediener:
& Nbsp; >>> connection.test_input ('hi N')
& Nbsp; Hi wêreld, mooi ya te ontmoet!
& Nbsp; -> BESLOTE
Ons kan 'n naam slaag:
& Nbsp; >>> verband = zc.ngi.testing.TextConnection ()
& Nbsp; >>> bediener = zc.monitor.Server (verbinding)
& Nbsp; >>> connection.test_input ('hallo Jim N')
& Nbsp; Hi Jim, mooi ya te ontmoet!
& Nbsp; -> BESLOTE
Die bediener kom met 'n paar basiese bevele. Kom ons registreer dit sodat ons kan sien wat hulle doen. Ons sal die simplfied registrasie koppelvlak gebruik:
& Nbsp; >>> zc.monitor.register_basics ()
Die eerste is die hulp opdrag. Gee hulp sonder die insette, gee 'n lys van beskikbare opdragte:
& Nbsp; >>> verband = zc.ngi.testing.TextConnection ()
& Nbsp; >>> bediener = zc.monitor.Server (verbinding)
& Nbsp; >>> connection.test_input ('help N')
& Nbsp; Ondersteun opdragte:
& Nbsp; hallo - Sê hallo
& Nbsp; hulp - Kry hulp oor bediener opdragte
& Nbsp; hi - Sê hallo
& Nbsp; interaktiewe - Draai op monitor se interaktiewe modus
& Nbsp; hou - Sluit die monitor
& Nbsp; -> BESLOTE
Ons kan gedetailleerde hulp kry deur die spesifiseer van 'n opdrag naam:
& Nbsp; >>> verband = zc.ngi.testing.TextConnection ()
& Nbsp; >>> bediener = zc.monitor.Server (verbinding)
& Nbsp; >>> connection.test_input ('help help N')
& Nbsp; Help vir hulp:
& Nbsp;
& Nbsp; Kry hulp oor bediener opdragte
& Nbsp;
& Nbsp; By verstek, is 'n lys van instruksies en opsommings gedruk. Verskaf
& Nbsp; 'n opdrag naam gedetailleerde dokumentasie vir 'n bevel te kry.
& Nbsp;
& Nbsp; -> BESLOTE
& Nbsp; >>> verband = zc.ngi.testing.TextConnection ()
& Nbsp; >>> bediener = zc.monitor.Server (verbinding)
& Nbsp; >>> connection.test_input ('help hallo N')
& Nbsp; Hulp vir hello:
& Nbsp;
& Nbsp; Sê hallo
& Nbsp;
& Nbsp; Verskaf 'n naam as jy nie die hele wêreld.
& Nbsp;
& Nbsp; -> BESLOTE
Die interaktiewe opdrag skakel die monitor in interaktiewe modus. Soos hierbo gesien, die monitor reageer gewoonlik na 'n enkele opdrag en sluit dan die verband. In "interaktiewe modus", is die verband nie gesluit totdat die ophou opdrag gebruik word. Dit kan nuttig wees wanneer hulle die monitor via telnet vir die diagnose.
& Nbsp; >>> verband = zc.ngi.testing.TextConnection ()
& Nbsp; >>> bediener = zc.monitor.Server (verbinding)
& Nbsp; >>> connection.test_input ('n interaktiewe N ')
& Nbsp; interaktiewe modus aan. Gebruik "afsluit" te verlaat.
& Nbsp; >>> connection.test_input ('help interaktiewe N')
& Nbsp; Hulp vir interaktiewe:
& Nbsp;
& Nbsp; Draai op monitor se interaktiewe modus
& Nbsp;
& Nbsp; Normaalweg die monitor stel die verband na 'n enkele bevel.
& Nbsp; Deur die invoer van die interaktiewe modus, die monitor sal nie die einde van die verband
& Nbsp; totdat jy die "stop" opdrag.
& Nbsp;
& Nbsp; In interaktiewe modus, 'n leë lyn herhaal die laaste opdrag.
& Nbsp;
& Nbsp; >>> connection.test_input ('help ophou N')
& Nbsp; Hulp vir ophou:
& Nbsp;
& Nbsp; Sluit die monitor
& Nbsp;
& Nbsp; Dit is eintlik net nuttig in interaktiewe modus (sien die "interaktiewe"
& Nbsp; opdrag).
& Nbsp;
Let daarop dat die uitslag van die opdragte nie eindig met "-> naby", wat sou aangedui het 'n geslote verbinding.
Let ook op dat die interaktiewe modus kan jy opdragte te herhaal.
& Nbsp; >>> connection.test_input ('hallo N')
& Nbsp; Hi wêreld, mooi ya te ontmoet!
& Nbsp; >>> connection.test_input (' n')
& Nbsp; Hi wêreld, mooi ya te ontmoet!
& Nbsp; >>> connection.test_input ('hallo Jim N')
& Nbsp; Hi Jim, mooi ya te ontmoet!
& Nbsp; >>> connection.test_input (' n')
& Nbsp; Hi Jim, mooi ya te ontmoet!
Nou sal ons gebruik sluit die verband te sluit.
& Nbsp; >>> connection.test_input ('ophou N')
& Nbsp; Goodbye.
& Nbsp; -> BESLOTE
Ten slotte, dit is die moeite werd om daarop te let dat uitsonderings sal 'n Stapelspoor op die verband genereer.
& Nbsp; >>> verband = zc.ngi.testing.TextConnection ()
& Nbsp; >>> bediener = zc.monitor.Server (verbinding)
& Nbsp; >>> connection.test_input ('hallo Jim 42 N') # doctest: + beletselteken
& Nbsp; Stapelspoor (mees onlangse oproep laaste):
& Nbsp; ...
& Nbsp; TypeError: hello () neem op die meeste 2 argumente (3 gegee)
& Nbsp;
& Nbsp; -> BESLOTE
Opdrag sirkelroetes
Die gebruik van die "Meer" modus, kan opdragte sein dat hulle wil hê dat alle toekomstige toevoer van die gebruiker te eis. Ons sal 'n dom voorbeeld om te demonstreer hoe dit werk implementeer.
Hier is 'n opdrag wat implementeer 'n sakrekenaar.
& Nbsp; '.' >>> Onmiddellike =
& Nbsp; >>> def calc (verband, * argumente):
& Nbsp; ... as argumente en argumente [0] == 'ophou':
& Nbsp; ... terug zc.monitor.QUIT_MARKER
& Nbsp; ...
& Nbsp; ... as argumente:
& Nbsp; ... connection.write (. Str (eval ('' sluit (argumente))))
& Nbsp; ... connection.write (' n')
& Nbsp; ...
& Nbsp; ... connection.write (onmiddellike)
& Nbsp; ... terug zc.monitor.MORE_MARKER
As ons hierdie opdrag registreer ...
& Nbsp; >>> zc.monitor.register (calc)
... Ons kan dit roep en ons kry 'n vinnige.
& Nbsp; >>> verband = zc.ngi.testing.TextConnection ()
& Nbsp; >>> bediener = zc.monitor.Server (verbinding)
& Nbsp; >>> connection.test_input ('calc N')
& Nbsp ;.
As ons dan gee dit meer insette wat ons kry die resultaat plus nog vinnige.
& Nbsp; >>> connection.test_input ('2 + 2 N')
& Nbsp; 4
& Nbsp ;.
& Nbsp; >>> connection.test_input ('4 * 2 N')
& Nbsp; 8
& Nbsp ;.
Sodra ons klaar ons kan die sakrekenaar vertel om ons te laat gaan.
& Nbsp; >>> connection.test_input ('ophou N')
& Nbsp; -> BESLOTE
Begin bediener
& Nbsp; >>> invoer tyd
& Nbsp; >>> invoer zope.testing.loggingsupport, aan te meld
& Nbsp; >>> loghandler = zope.testing.loggingsupport.InstalledHandler (
& Nbsp; ... Geen, vlak = logging.INFO)
& Nbsp; >>> zc.monitor.start (9644)
& Nbsp; ('', 9644)
& Nbsp; >>> druk loghandler
& Nbsp; zc.ngi.async.server INFO
& Nbsp; luister op ('', 9644)
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = Geen
& Nbsp; >>> time.sleep (0.1)
& Nbsp; >>> loghandler.clear ()
& Nbsp; >>> zc.monitor.start (('127.0.0.1', 9644))
& Nbsp; ('127.0.0.1', 9644)
& Nbsp; >>> druk loghandler
& Nbsp; zc.ngi.async.server INFO
& Nbsp; luister op ('127.0.0.1', 9644)
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = Geen
& Nbsp; >>> time.sleep (0.1)
Bind aan hawe 0:
& Nbsp; >>> addr = zc.monitor.start (0)
& Nbsp; >>> addr == zc.monitor.last_listener.address
& Nbsp; True
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = Geen
& Nbsp; >>> time.sleep (0.1)
Probeer om te rebind na 'n hawe in gebruik:
& Nbsp; >>> loghandler.clear ()
& Nbsp; >>> zc.monitor.start (('127.0.0.1', 9644))
& Nbsp; ('127.0.0.1', 9644)
& Nbsp; >>> zc.monitor.start (('127.0.0.1', 9644))
& Nbsp; Vals
& Nbsp; >>> druk loghandler
& Nbsp; zc.ngi.async.server INFO
& Nbsp; luister op ('127.0.0.1', 9644)
& Nbsp; zc.ngi.async.server WAARSKUWING
& Nbsp; nie in staat om te luister op ('127.0.0.1', 9644)
& Nbsp; wortel WAARSKUWING
& Nbsp; nie zc.monitor bediener te begin omdat die adres ('127.0.0.1', 9644) in gebruik is.
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = Geen
& Nbsp; >>> time.sleep (0.1)
& Nbsp; >>> loghandler.uninstall ()

Wat is nuut in hierdie release:

  • As die binding van die monitor op 'n Unix-domein socket, verwyder 'n bestaande aansluiting by die dieselfde pad so die bind suksesvol is. Dit kan bestaande gebruik beïnvloed met betrekking debug gedrag te zopectl, maar sal meer voorspelbaar wees.

Wat is nuut in die weergawe 0.3.0:

  • Bygevoeg 'n vereenvoudigde registrasie koppelvlak
  • .

Vereistes :

  • Python

Soortgelyke sagteware

SqStat
SqStat

2 Jun 15

gstats
gstats

11 May 15

Ander sagteware ontwikkelaar Jim Fulton

zc.s3uploadqueue
zc.s3uploadqueue

20 Feb 15

zc.zope3recipes
zc.zope3recipes

14 Apr 15

zc.resumelb
zc.resumelb

20 Feb 15

Kommentaar te zc.monitor

Kommentaar nie gevind
Kommentaar te lewer
Draai op die foto!