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守护进程(多线程开发)入门实例相关推荐
- 基于php的微信公众平台开发入门实例
作者:zbtree 这篇文章主要介绍了基于php的微信公众平台开发入门,实例分析了微信公众平台从注册.配置方法及接口代码的实现技巧,深入浅出.希望可以帮助大家快速入门. CSDN学院开设了系列直播&l ...
- Informatica ETL开发入门实例
一.ETL开发前准备工作 注:Informatica的存储服务和集成服务必须已经启动,客户端才能连接并进行ETL实例开发 客户端工具: PowerCenter Designer:D客户端 PowerC ...
- pythonhelloworld实例_Python基于Tkinter的HelloWorld入门实例
本文实例讲述了Python基于Tkinter的HelloWorld入门实例.分享给大家供大家参考.具体分析如下: 初学Python,打算做几个Tkinter的应用来提高. 刚学的HelloWorld, ...
- python 协程 多线程_python进阶之多线程(简单介绍协程)
多线程 线程:实现多任务的另一种方式 一个进程中,也经常需要同时做多件事,就需要同时运行多个'子任务',这些子任务,就是线程 线程又被称为轻量级进程(lightweight process),是更小的 ...
- python守护线程_Python守护线程用法实例
本文实例讲述了Python守护线程用法.分享给大家供大家参考,具体如下: 如果你设置一个线程为守护线程,就表示你在说这个线程是不重要的,在进程退出的时候,不用等待这个线程退出.如果你的主线程在退出的时 ...
- python开两个守护线程_python 守护线程
守护线程 如果python线程是守护线程,那么以为着这个线程是"不重要"的,"不重要"意味着如果他的父进程结束了但该守护线程没有运行完,守护进程就会被强制结束. ...
- python io密集 多线程_python多进程和多线程究竟谁更快(详解)
python3.6 threading和multiprocessing 四核+三星250G-850-SSD 自从用多进程和多线程进行编程,一致没搞懂到底谁更快.网上很多都说python多进程更快,因为 ...
- python tcp服务器 多线程_Python中的多线程TCP服务器
我使用python的threding模块创建了一个简单的多线程tcp服务器.每次连接新客户端时,该服务器都会创建一个新线程. #!/usr/bin/env python import socket, ...
- python如何开启多线程_Python如何创建多线程
Python提供了_thread和threading两个模块来支持多线程,但_thread提供低级别的.原始的县城支持,以及一个简单的锁,通常情况下我们使用后者,来进行多线程编程 创建多线程 使用th ...
最新文章
- PHP学习笔记-Cookie
- 任意半径局部直方图类算法在PC中快速实现的框架。
- 独家下载!Java工程师成神必备宝典
- 基于用例的工作量估计
- linux下的struct sigaction
- [转]两个经典的windbg调试案例,值得学习。
- git(4):git安装教程
- vim可以用来编译python吗_Linux下编译Vim以支持python2.x
- 在线索二叉树中找前驱后继
- 寻虫记:BOM头制造的冤案,无故多出空白行
- CCF NOI1023 最大跨度
- GridView 分页导航
- 「leetcode」234. 回文链表:【数组模拟】【翻转后半部分】详解
- matlab 系统辨识,系统辨识的Matlab实现方法(手把手)..docx
- 绕口令 - 专项练习
- NAT技术配置(内外网IP地址转换)
- Pandas数据分析库(2)Python数据分析
- 一份手游代理合同,让你知道游戏代理商该干什么!
- 黑马12月开班时间出炉!戳文章免费试学!
- 统计建模与R软件 第五章课后习题(5.13~5.18)
热门文章
- BM26 求二叉树的层序遍历(变形更新中)
- Android持久化存储(1)文件存储
- 15行代码让苹果设备崩溃,最新的iOS 12也无法幸免
- BZOJ5286:[HNOI/AHOI2018]转盘——题解
- asp.net DataGrid GridView 表格之选中行与获取选中行数据
- 安卓WebView加载网页不显示或者乱跳问题
- tomcat实现session集群及tomcat+memcached共享session存储(四)
- C# List.sort排序详解(多权重,升序降序)
- 稳定多维table排序
- Spring Bean引用例子