#!/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()