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

2024-10-02 20:30:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个脚本,它请求api获取数据并创建dataframe,如果满足某个条件,它会向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.fileno文件号(),'w',0) 系统标准冲洗() 使用-u选项运行脚本 通过stdbuf运行脚本

我的感觉是它与supervisordbuffer有关,而不是与脚本本身有关,但是我不知道如何关闭supervisordbuffer。你知道吗

你能告诉我吗?你知道吗


Tags: 版本脚本apidataframe标准进程request系统