Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-06-14 23:19:25

  ukasz - Użytkownik

ukasz
Użytkownik
Skąd: wroclaw
Zarejestrowany: 2006-06-21

python3. sockety asynchroniczne czy watki

witam

jest sobie api do mikrotika (to takie urzadzenia glownie do wifi) ktore gada po tcp i po wyslaniu komendy odpowiedniej odpowiada. to co chce sie wyslac i to co  sie dostaje ma zakodowana dlugosc przed kazdym "slowem". to tak w formie wstepu.

napisalem sobie klase do tegoz api w python3. dziala fajnie robi dokladnie to co chce.
uzywam api do rozrzucania konfiguracji mikrotika.

problem polega na tym ze w przypadku nawet nie skomplikowanej i malej konfiguracji skrypt potrafi mielic nawet 45 minut. ostatnio tak mialem przy okolo 500 hostach. chce to przerobic tak zebym mogl "przejechac" po mikrotikach jak najszybciej. myslalem nad asyncore bo moja aplikacja jest network bound a nie cpu bound. to ja nawiazuje polaczenie i cala zabawa jest ze zdalnym hostem. w asyncore mysle ze moglbym zrobic dla kazdego hosta do ktorego chce sie polaczyc osobna instncje klasy i pozniej asyncore.loop()

drugoe rozwiazanie jest z uzyciem watkow. bardzo wygodne. problem moze sie pojawic pozniej kiedy bede potrzebowal komunikacji pomiedzy glownym watkiem a odpalonymi.

obydwa rozwiazania maja swoje plusy i minusy. jedyne czego chcialbym uniknac to to zebym sie nie "wkopal". tzn aplikacja napewno bedzie sie rozwijala i bedzie poszezana o kolejne funkcjonalnosci. np raportowanie, krotkie podsumowanie tego co zostalo zrobione, upgrade firmware itp.

prosze pomozcie. na co zwracacie uwage i przed czym przestrzegacie ? nie jestem jakims super programista (api pisalem dosyc dlugo) ciagle ucze sie pythona


http://wiblo.pl/wilk/userbars/debian_user_black.png

Offline

 

#2  2012-06-15 07:54:13

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: python3. sockety asynchroniczne czy watki

Nie znam na tyle pythona by wiedzieć czym siest ansyncore, ale mniejsza o to. Wątki wydają się tu dobrym rozwiązaniem, nie rozumiem czemu oczekujesz problemów z tym związanych. Będziesz łączył się do kilku hostów jednocześnie, czas się skróci, wszystko gra.

Offline

 

#3  2012-06-21 23:07:05

  ukasz - Użytkownik

ukasz
Użytkownik
Skąd: wroclaw
Zarejestrowany: 2006-06-21

Re: python3. sockety asynchroniczne czy watki

ok moze inaczej.

czesto odradzane jest podejscie do wielowatkowosci. nie wiedziec dlaczego ?
teraz mam inny problem z pythonem. mianowicie logging. jak filtrowac logi na podstawie modulu z ktorego pochodza i levelu


http://wiblo.pl/wilk/userbars/debian_user_black.png

Offline

 

#4  2012-06-22 02:38:55

  zlyZwierz - Moderator

zlyZwierz
Moderator
Zarejestrowany: 2005-02-18
Serwis

Re: python3. sockety asynchroniczne czy watki

Napisalem sobie taki scyzoryk do mietkow juz ponad rok temu, klasa API jest rozwinieciem exampla z mietkowego wiki.
Żeby zachować uniwersalność (2.9 - 5.x), z API zrezygnowałem na korzyść SSH.
Spinam to do kupy razem z pysnmp - jako dopełnienie zajebistości :)

Robię to w wątkach i jest ok :)

Thread pool ustawiam w zależności od łącza i maszyny np na 20 workerów i dzida..
Glowne zastosowanie: backupy, wrzucanie skryptow, drobne modyfikacje konfiga (ntp,syslog, snmp trap, klucze ssh)

Asyncore widze raczej jako serwer (mietki robią pull), a Ty potrzebujesz od siebie zrobic push - czyli zainicjowac akcję, wiec raczej wątki..

Pozdrawiam

Ostatnio edytowany przez zlyZwierz (2012-06-22 02:41:54)

Offline

 

#5  2012-06-22 09:08:31

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: python3. sockety asynchroniczne czy watki

Co do logowania "logging python" > google i masa wyników. Np. http://onlamp.com/pub/a/python/2005/06/02/logging.html . Niezbyt aktualne, chcesz coś nowszego poszukaj, w dokumentcji powinno być.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)