python小程序:以后台服务方式 定时 监视redis队列 (anaconda3.5.2)

来源:互联网 发布:驾照模拟考试c1软件 编辑:程序博客网 时间:2024/05/23 01:22
#!/usr/bin/env python

import datetime, threading, redis

interval = 60*60

def chkRedis(): 
global interval 
now=datetime.datetime.now()
pool=redis.ConnectionPool(host='10.0.0.9', port=6380)
r = redis.Redis(connection_pool=pool)
l = r.llen('COMPANYS')
str = '%d:%s\n' % (l,now)
print(str)
with open('redis-chk.txt', 'a') as f:
f.write(str)

t = threading.Timer(interval, chkRedis)  
t.start()  


def createDaemon(stdin='/dev/null',stdout='/dev/null',stderr='/dev/null'):
import os, sys, time
sys.stdin = open(stdin,'r')
sys.stdout = open(stdout,'a+')
sys.stderr = open(stderr,'a+')
#产生子进程,而后父进程退出
try:
pid = os.fork()
if pid > 0:
sys.exit(0)
except OSError:
print('c fork OSError')
sys.exit(1)

#修改子进程工作目录
os.chdir("/home/gaohang")
#创建新的会话,子进程成为会话的首进程
os.setsid()
#修改工作目录的umask
os.umask(0)
#创建孙子进程,而后子进程退出
try:
pid = os.fork()
if pid > 0:
print("Daemon PID %d" % pid)
sys.exit(0)
except OSError:
print("cc fork OSError")
sys.exit(1)
chkRedis()


if __name__ == "__main__":
createDaemon()
阅读全文
0 0