multiprocess 报错 TypeError: 'method' object is not iterable

来源:6-5 编程实践-多进程优化各个模块

慕丝2042335

2021-12-11

在scheduler中加了multiproces之后,download 和 md5_list都变成了 multiprocess的 method,无法正常往下执行。

  # multiprocess
    from pdb import set_trace
    set_trace()
    scheduler.set_cal_type(CalcType.MultiProcess)
    multiprocess_time = scheduler.process()
Traceback (most recent call last):
  File "/usr/local/study_process/download_server/scheduler.py", line 119, in <module>
    multiprocess_time = scheduler.process()
  File "/usr/local/study_process/download_server/scheduler.py", line 51, in process
    for md5 in md5_list:
TypeError: 'method' object is not iterable

(Pdb) url_list
['https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png']
(Pdb) content_list
<bound method BaseModule._process_multprocess of <modules.downloader.Downloader object at 0xffffb8dea5b0>>
(Pdb) md5_list
<bound method BaseModule._process_multprocess of <modules.hasher.Hasher object at 0xffffb8dea280>>

写回答

1回答

咚咚呛

2021-12-12

这应该和加不加入multiprocess没关系,确认下代码实现逻辑的改动是否合理,或者可以参考下老师提供的代码。

0
2
慕丝2042335
单线程和多线程,content_list 和 md5_list 是个list类型的,但是多进程这里是个 'method' object
2021-12-12
共2条回复

学透协程/进程/线程 程序员必知必会技能

程序员都需要掌握的高性能开发技术

276 学习 · 55 问题

查看课程