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

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 多进程处理数据时如何完整打印?
未分類
13 1 月 2021

多进程处理数据时如何完整打印?

多进程处理数据时如何完整打印?

資深大佬 : oldbird 1

from multiprocessing import Pool

def do(item):

 print item   ...... #处理 txt (每个大概 5 分钟) 

if name==’main‘:

 items=glob.glob('*.txt')   pool=Pool(5)   pool.map(do,items)   pool.close()   pool.join() 

items 为[‘1111.txt’,’2222.txt’,’3333.txt’,’4444.txt’,’5555.txt’,……’9999.txt’]

运行时会穿插打印,比如 111221.33txt

是否有办法将每项打印完整?

大佬有話說 (6)

  • 資深大佬 : maocat

    上锁,改同步

  • 資深大佬 : crackhopper

    还可以用 queue,有个线程安全的 queue,用 multiprocessing.Manager,上面带了一个 queue 。

  • 資深大佬 : BrokenVns

    再启动一个日志进程,通过 socket 把每个进程的日志发送过去,由日志进程汇总打印。

  • 資深大佬 : UN2758

    可以用带队列功能的日志,比如 loguru

  • 資深大佬 : VYSE

    https://github.com/jruere/multiprocessing-logging

  • 資深大佬 : jones2000

    还不如每个进程一个日志文件, 每行日志加时间戳,最后显示的时候读多个文件日志,根据时间戳排序下。 省事

文章導覽

上一篇文章
下一篇文章

AD

其他操作

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

51la

4563博客

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