跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 熟手来帮一把:同样的一批代码,为何运行更新时间不同
未分類
5 2 月 2020

熟手来帮一把:同样的一批代码,为何运行更新时间不同

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都是同一个时间了,感谢!

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具