以下是一个示例代码,演示如何并行运行作业池中的每个作业,并确保每个作业只执行一次:
import multiprocessing
def job_function(job_id):
# 执行作业的代码
print(f"开始执行作业 {job_id}")
# 这里可以放置你的作业逻辑
print(f"作业 {job_id} 执行完成")
if __name__ == "__main__":
# 创建作业池
pool = multiprocessing.Pool(processes=4) # 这里可以设置你希望的并行作业数量
# 定义作业列表
job_ids = [1, 2, 3, 4, 5]
# 并行执行作业池中的每个作业
results = pool.map(job_function, job_ids)
# 关闭作业池
pool.close()
pool.join()
在上述代码中,我们使用multiprocessing.Pool
创建了一个作业池,并指定了希望并行执行的作业数量。然后,我们定义了一个job_function
函数,该函数接收一个作业ID作为参数,并执行作业的逻辑。在这个示例中,我们只是简单地打印出作业的开始和结束消息。
我们还定义了一个作业列表job_ids
,包含了我们希望执行的每个作业的ID。然后,我们使用pool.map
方法将作业列表传递给作业池,并指定要执行的作业函数。pool.map
方法会自动将作业列表中的每个作业分配给作业池中的一个进程进行执行。
最后,我们在主程序中关闭作业池,并使用pool.join
等待所有作业执行完成。这样,我们就实现了并行运行作业池中的每个作业,并确保每个作业只执行一次的解决方法。
上一篇:并行运行子shell并收集退出码
下一篇:并行长时间运行任务的时间优化