问题描述
大家好,我有并行工作的脚本,我使用 APScheduler
来安排任务,但它可以同步工作 (BlockingScheduler,BackgroundScheduler
) 不适用于并行进程。您的建议是什么,我如何每秒运行并行进程?我也使用 multiprocesses
进行并行
EDİT:我刚刚解决了它,如果有人遇到这样的问题,这里是例子
from multiprocessing import Process
from apscheduler.schedulers.background import BlockingScheduler
def work_log_cpu1():
print(" Proces work_log_cpu1")
list11=[]
for i in range(10000000):
list11.append(i*2)
print("Proces work_log_cpu1 finished")
def work_log_cpu2():
print("Proces work_log_cpu2")
list12=[]
for i in range(10000000):
list12.append(i*2)
print("Proces work_log_cpu2 finished")
def work_log_cpu3():
print(" Proces work_log_cpu3")
list13=[]
for i in range(10000000):
list13.append(i*2)
print("Proces work_log_cpu3 finished")
def main():
# sleeps=[3,5,2,7]
process=Process(target=work_log_cpu1)
process2=Process(target=work_log_cpu2)
process3=Process(target=work_log_cpu3)
process.start()
process2.start()
process3.start()
process.join()
process2.join()
process3.join()
if __name__ == '__main__':
# main()
sched.add_job(main,'interval',seconds=1,id='first_job',max_instances=1)
sched.start()
解决方法
多处理有什么问题?
import multiprocessing
p1 = multiprocessing.Process(target=func1,args=("var1","var2",))
p2 = multiprocessing.Process(target=func2,args=("var3","var4",))
p1.start()
p2.start()
p2.join()