1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # 用于批量处理转换 运行多个转换容器
- import time
- import subprocess
- import os
- import pprint
- timeSleep = 15
- def redis(self):
- import redis
- host = '0.0.0.0'
- port = 6379
- pool = redis.ConnectionPool(host=host, port=int(port))
- return redis.Redis(connection_pool=pool)
- def command(file):
- return 'dm call office-convert_call id=' + file
- def popen(command, bg=False):
- string = command
- if bg == True:
- command = command + ' 1>/dev/null 2>&1 &'
- popen = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
- output = ''
- Demeter.echo(string)
- while True:
- output = popen.stdout.readline()
- pprint.pprint(output)
- if popen.poll() is not None:
- break
- return output
- # 文档转换
- def convert():
- r = redis()
- c = 'office_file'
- i = 0
- while 1:
- file = r.lpop(c)
- if file:
- g = command(file)
- Shell.popen(g, True)
- i = i+1
- if i >= 10:
- time.sleep(timeSleep)
- i = 0
- def handle():
- convert()
- handle()
|