python-3.x - 在父进程中捕获子进程异常

标签 python-3.x multiprocessing

我正在创建多个单独运行爬网程序的进程。我想确保如果爬虫进程中有一些异常,我能够在父进程中捕获它。 这是流程创建代码:

try:
    caching_process = Process(target=run_crawler_process, args=(Config.CRAWLER_NAME, locations,
                                                               city_payloads_map, cycle_count))
    caching_process.start()
except Exception as processException:
    raise processException

最佳答案

您不能使用 Process 对象来做到这一点。 multiprocessing.Poolconcurrent.futures.ProcessPoolExecutor允许这样做。

pool = multiprocessing.Pool()
task = pool.apply_async(run_crawler_process, (Config.CRAWLER_NAME, locations,c ity_payloads_map, cycle_count))

try:
    task.get()
except Exception as error:  
    print("Error while processing task: %s" % error)

关于python-3.x - 在父进程中捕获子进程异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60614531/

相关文章:

python-3.x - 在稳定的 NumPy 中复制子记录数组

python - 如何在创建动画之前创建绘图?

尽管队列已满,Python 多处理队列 get() 超时

python - 使用 url 作为参数时,opencv videocapture 如何工作?

java - 网络托管上的多处理

python - ipaddress 模块 ValueError ('%s has host bits set' % self)

python - retrbinary 中的 FTPlib 错误

python - 如何在 Pydantic 的严格类型(如 StrictStr)中使用验证器?

c - 是否可以有一个父进程 GTK 应用程序 "contain"子进程 GTK windows?

python - 如何在 YAML 中指定始终使用 dictConfig 在项目文件夹中创建日志文件?