free9901 大佬有话说 : 2020-1-26 15:38:03
熟手来帮一把:同样的一批代码,为何运行更新时间不同
本帖最后由 free9901 于 2020-1-26 16:07 编辑
https://s2.ax1x.com/2020/01/26/1mdztO.jpg
centos7 vps。这是每个xx.py产生的log,有些在15:32就有了4k,有些还是0k。(每个xx.py代码是一样的。它们同时在运行,每个py程序中都含有while循环,不断给log加内容,但更新的时间能相差到2-4分钟)。这是为啥?
进一步描述一下:
每个py程序中就是一个简单的while循环访问某网站。
然后用
nohup python xx1.py >xx1.log 2>&1 &
nohup python xx2.py >xx2.log 2>&1 &
nohup python xx3.py >xx3.log 2>&1 &
。。。。
运行这些py.
这样,多个含有while循环(不会退出)的.py程序就运行在vps上了。
没有用到多进程或者多线程。
晴晴晴 大佬有话说 : 2020-1-26 16:09:48
free9901 大佬有话说 : 2020-1-26 16:06
每个py程序中就是一个简单的while循环访问某网站。
然后用
nohup python xx1.py >xx1.log 2>&1 &
原因
python的输出又缓冲,导致out.log并不能够马上看到输出。
-u 参数,使得python不启用缓冲。
试一下
解决
nohup python -u flush.py > flush.log 2>&1 &
举例
free9901 大佬有话说 : 2020-1-26 15:50:58
是不是因为CPU不能同时运行这些py程序?
晴晴晴 大佬有话说 : 2020-1-26 16:00:51
具体看写法吧。难道多线程许可? py 没写过
free9901 大佬有话说 : 2020-1-26 16:06:23
晴晴晴 大佬有话说 : 2020-1-26 16:00
具体看写法吧。难道多线程许可? py 没写过
每个py程序中就是一个简单的while循环访问某网站。
然后用
nohup python xx1.py >xx1.log 2>&1 &
nohup python xx2.py >xx2.log 2>&1 &
nohup python xx3.py >xx3.log 2>&1 &
。。。。
运行这些py.
这样,多个含有while循环(不会退出)的.py程序就运行在vps上了。
没有用到多进程或者多线程。
free9901 大佬有话说 : 2020-1-26 16:32:50
晴晴晴 大佬有话说 : 2020-1-26 16:09
原因
python的输出又缓冲,导致out.log并不能够马上看到输出。
确实是这个原因。加了-u后,所以的输出log都是同一个时间了,感谢!