这篇文章主要为大家详细介绍了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守护进程(多线程开发)入门实例相关推荐

  1. 基于php的微信公众平台开发入门实例

    作者:zbtree 这篇文章主要介绍了基于php的微信公众平台开发入门,实例分析了微信公众平台从注册.配置方法及接口代码的实现技巧,深入浅出.希望可以帮助大家快速入门. CSDN学院开设了系列直播&l ...

  2. Informatica ETL开发入门实例

    一.ETL开发前准备工作 注:Informatica的存储服务和集成服务必须已经启动,客户端才能连接并进行ETL实例开发 客户端工具: PowerCenter Designer:D客户端 PowerC ...

  3. pythonhelloworld实例_Python基于Tkinter的HelloWorld入门实例

    本文实例讲述了Python基于Tkinter的HelloWorld入门实例.分享给大家供大家参考.具体分析如下: 初学Python,打算做几个Tkinter的应用来提高. 刚学的HelloWorld, ...

  4. python 协程 多线程_python进阶之多线程(简单介绍协程)

    多线程 线程:实现多任务的另一种方式 一个进程中,也经常需要同时做多件事,就需要同时运行多个'子任务',这些子任务,就是线程 线程又被称为轻量级进程(lightweight process),是更小的 ...

  5. python守护线程_Python守护线程用法实例

    本文实例讲述了Python守护线程用法.分享给大家供大家参考,具体如下: 如果你设置一个线程为守护线程,就表示你在说这个线程是不重要的,在进程退出的时候,不用等待这个线程退出.如果你的主线程在退出的时 ...

  6. python开两个守护线程_python 守护线程

    守护线程 如果python线程是守护线程,那么以为着这个线程是"不重要"的,"不重要"意味着如果他的父进程结束了但该守护线程没有运行完,守护进程就会被强制结束. ...

  7. python io密集 多线程_python多进程和多线程究竟谁更快(详解)

    python3.6 threading和multiprocessing 四核+三星250G-850-SSD 自从用多进程和多线程进行编程,一致没搞懂到底谁更快.网上很多都说python多进程更快,因为 ...

  8. python tcp服务器 多线程_Python中的多线程TCP服务器

    我使用python的threding模块创建了一个简单的多线程tcp服务器.每次连接新客户端时,该服务器都会创建一个新线程. #!/usr/bin/env python import socket, ...

  9. python如何开启多线程_Python如何创建多线程

    Python提供了_thread和threading两个模块来支持多线程,但_thread提供低级别的.原始的县城支持,以及一个简单的锁,通常情况下我们使用后者,来进行多线程编程 创建多线程 使用th ...

最新文章

  1. PHP学习笔记-Cookie
  2. 任意半径局部直方图类算法在PC中快速实现的框架。
  3. 独家下载!Java工程师成神必备宝典
  4. 基于用例的工作量估计
  5. linux下的struct sigaction
  6. [转]两个经典的windbg调试案例,值得学习。
  7. git(4):git安装教程
  8. vim可以用来编译python吗_Linux下编译Vim以支持python2.x
  9. 在线索二叉树中找前驱后继
  10. 寻虫记:BOM头制造的冤案,无故多出空白行
  11. CCF NOI1023 最大跨度
  12. GridView 分页导航
  13. 「leetcode」234. 回文链表:【数组模拟】【翻转后半部分】详解
  14. matlab 系统辨识,系统辨识的Matlab实现方法(手把手)..docx
  15. 绕口令 - 专项练习
  16. NAT技术配置(内外网IP地址转换)
  17. Pandas数据分析库(2)Python数据分析
  18. 一份手游代理合同,让你知道游戏代理商该干什么!
  19. 黑马12月开班时间出炉!戳文章免费试学!
  20. 统计建模与R软件 第五章课后习题(5.13~5.18)

热门文章

  1. BM26 求二叉树的层序遍历(变形更新中)
  2. Android持久化存储(1)文件存储
  3. 15行代码让苹果设备崩溃,最新的iOS 12也无法幸免
  4. BZOJ5286:[HNOI/AHOI2018]转盘——题解
  5. asp.net DataGrid GridView 表格之选中行与获取选中行数据
  6. 安卓WebView加载网页不显示或者乱跳问题
  7. tomcat实现session集群及tomcat+memcached共享session存储(四)
  8. C# List.sort排序详解(多权重,升序降序)
  9. 稳定多维table排序
  10. Spring Bean引用例子