Python脚本通过supervisord输出缓冲运行

时间:2016-04-10 06:58:52

标签: python python-2.7 python-3.x pandas

我有一个脚本,它请求api获取数据并创建pandas数据帧,如果满足某些条件,它会向api发送另一个请求并打印结果。

简单版本希望如此:

request= api_reguest(data)
table = json_normalize()
table = table[table['field']>1]
if table.empty:
     pass
else:
     var1,var2,var3 = table[['var1','var2','var3']]
     another_request = api_request2(var1,var2,var3)
     print var1,var2,var3

threading.Timer(1, main).start()

一切正常,但当我在supervisord中将其作为一个进程运行时,它会在大约12小时后停止记录并向api发送请求。这显然是输出缓冲的问题,因为如果我重新启动它,它会再次开始工作。

我已经在python中尝试了所有可能的输出缓冲解决方案:

sys.stdout = os.fdopen(sys.stdout.fileno(),'w',0) sys.stdout.flush() 使用-u选项运行脚本 通过stdbuf运行脚本

我的感觉是它与supervisord缓冲区有关,而不是与脚本本身有关,但我无法弄清楚如何关闭supervisord缓冲区。

你可以告诉我吗?

0 个答案:

没有答案