Simple XML-RPC Server with gEvent

2010-12-26 22:12:20 UTC by maris in python, Linux, Skripti,

#!/usr/bin/python from gevent import monkey monkey.patch_all() import gevent import time import xmlrpclib from SimpleXMLRPCServer import SimpleXMLRPCServer import SocketServer from SimpleXMLRPCServer import SimpleXMLRPCServer,SimpleXMLRPCRequestHandler class ThreadedXMLRPCServer(SocketServer.ThreadingMixIn,SimpleXMLRPCServer): pass import urllib2 class XMLRPCHandler: def is_even(n): return n%2 == 0 def req(url): return urllib2.urlopen(url).read() server = ThreadedXMLRPCServer(("localhost", 7080)) print "Listening on port 7080..." server.register_instance(XMLRPCHandler()) server.serve_forever()

(0 komentāri)

Darbu rinda, beanstalkd vs gearmand

2010-06-17 12:20:28 UTC by maris in Linux, Skripti,

Manā redzes lokā nonāca beanstalkd ātrs, dalīts (distributed) darbu menedžeris, ar kura palīdzību tika uzrakstits pdf generators, kas var tikt virtuāli neierobežoti mērogots.

Beanstalkd ir visai ātrs un vienkāršs darbu menedžeris, kā raksta autors, tad tā protokols ir balstīts uz memcached. Jaunākajās versijās ir binlog iespēja, kas nodrišina darbu saglabāšanu avārijas gadījumā.

Pēc kāda laika atradu beanstalkd alternatīvu - Gearmand, no iesākuma biju domājis, ka tas ir vecais gearman, ko sarakstīja Danga uz perl, bet vēlāk izrādijās, ka tas ir jauns projekts, kas uzrakstits uz C, bet par bāzi ņemtas originālā Gearman idejas un protokols.

Sākumā šķita, ka šie abi izstrādājumi dara vien un to pašu darbu tomēr ir dažas būtiskas atšīrības.

Gearman atbalsta gan sinronos darbus, kas ļauj izsaukt attālinātu procedūru un sagaidīt rezultātu, gan arī asinhrnos - background darbus, turpretī beanstalkd nav sinhrono darbu atbalsta, tikai asinhronie. Toties beanstalkd ir iespēja izveidot vairākas darbu rindas - Tubes, kuras var būt paredzētas dažādiem servisiem.

Beanstalkd ir vecāks un atstrādātaks produkts, par to arī liecins kļudu datubāze, kas ir krietni mazāka par Gearmand bugs bāzi.

(0 komentāri)

resiserfs "Not enough allocable blocks" fix

2010-04-17 07:58:29 UTC by maris in Linux,

1st run: reiserfsck --rebuild-sb /dev/DISK 2nd run: reiserfsck --rebuild-tree /dev/DISK

(1 komentārs)

network disk clone

2010-03-22 12:19:51 UTC by maris in Linux, Quick Tips,

ssh host "dd if=/dev/sda3 bs=4096" > sda3.img bandwidth save: ssh host "dd if=/dev/sda3 bs=4096 | gzip" | gunzip > sda3.img with progressbar: ssh host "dd if=/dev/sda3 bs=4096 | gzip" | gunzip | pv -c > sda3.img

(1 komentārs)

Bash regex

2010-03-22 11:03:14 UTC by maris in Linux, Skripti,

Kopš Bash 3. versijas ir pārādījies regulāro izteiksmju atbalsts, kas ir līdzīgs realizācijai iekš perl. if [[ "pirmagrupa01-51" =~ ^([a-zA-Z]+)([0-9]+)-([0-9]+)$ ]] then echo "group1:${BASH_REMATCH[1]} group2:${BASH_REMATCH[2]} group3:${BASH_REMATCH[3]}" fi path=/var/log/messages echo ${path%/*} /var/log echo ${path#*/} messages

(0 komentāri)