python守护多线程_Python守护进程(多线程开发)入门实例
這篇文章主要為大家詳細介紹了Python守護進程(多線程開發)入門實例,具有一定的參考價值,可以用來參考一下。
對python這個高級語言感興趣的小伙伴,下面一起跟隨512筆記的小編兩巴掌來看看吧!
# @param Python守護進程(多線程開發)
# @author 512筆記|512pic.com
#!/usr/bin/python
import sys,time,json,logging
import Queue, threading, datetime
from lib.base.daemon import Daemon
from lib.queue.httpsqs.HttpsqsClient import HttpsqsClient
from lib.db.DbMongodb import DbMongodb
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S',
filename='myapp.log',
filemode='w')
queue = Queue.Queue()
httpsqs = HttpsqsClient('192.168.0.218','1218','httpsqs.com')
db = DbMongodb('192.168.0.119','testdb')
class ThreadGetHttpSqs(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.httpsqs = httpsqs
self.queue = queue
def run(self):
while True:
data = self.httpsqs.get('logtest')
if data is not None:
self.queue.put(data)
logging.info('get:id %s , tablename %s' % (self.getName(),data))
else:
time.sleep(3)
class ThreadInsertDB(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.queue = queue
self.db = db
def run(self):
while True:
chunk = self.queue.get()
s = json.loads(chunk)
tablename = s['table']
data = s['data']
self.db.save(tablename,data)
logging.info('insert:id %s , tablename %s' % (self.getName(),tablename))
self.queue.task_done()
class MyDaemon(Daemon):
def _run(self):
while True:
for i in range(2):
t = ThreadGetHttpSqs()
#t.setDaemon(True)
t.start()
for i in range(2):
b = ThreadInsertDB()
#t.setDaemon(True)
b.start()
#線程已經為永真循環,進程不能再循環
time.wait()
if __name__ == "__main__":
daemon = MyDaemon('/tmp/daemon-example.pid')
if len(sys.argv) == 2:
if 'start' == sys.argv[1]:
daemon.start()
elif 'stop' == sys.argv[1]:
daemon.stop()
elif 'restart' == sys.argv[1]:
daemon.restart()
else:
print "Unknown command"
sys.exit(2)
sys.exit(0)
else:
print "usage: %s start|stop|restart" % sys.argv[0]
sys.exit(2)
# End www_512pic_com
注:關于Python守護進程(多線程開發)入門實例的內容就先介紹到這里,更多相關文章的可以留意512筆記的其他信息。
關鍵詞:守護進程
總結
以上是生活随笔為你收集整理的python守护多线程_Python守护进程(多线程开发)入门实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 薜荔藤的功效与作用、禁忌和食用方法
- 下一篇: 杏干泡水的功效与作用、禁忌和食用方法