|
本帖最后由 jason_young_y 于 2019-11-22 13:52 编辑
#Python calls subprocess.popen
#Ro is the way of redis Ro是redis的方法
#code is run in flask 代码在flask中执行
def Thread_CMD_By_Redis_Queue(uid,_cmd, plat_name=None):
RO.del_key(uid)
def _cmd_file():
_restul = subprocess.Popen(_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
print ("=============",_restul.pid)
while subprocess.Popen.poll(_restul) is None:
for line in iter(_restul.stdout.readline, b''):
RO.queue_put(uid, line.decode('utf-8').strip()) #push in redis queue
if subprocess.Popen.poll(_restul) != 0:
for line in iter(_restul.stderr.readline, b''):
RO.queue_put(uid, line.decode('utf-8').strip()) #push in redis queue
RO.queue_put(uid, "plat call test: Fail") if \
plat_name is None else RO.queue_put(uid,"{} call test: Fail".format(plat_name))
else:
RO.queue_put(uid, "plat call test: OK") if \
plat_name is None else RO.queue_put(uid,"{} call test:OK".format(plat_name))
RO.queue_put(uid,"")
sub = SubThread(_cmd_file)
sub.setDaemon(True)
sub.start()
|
|