怎么让python一直执行_怎么才能让Python多进程不间断执行任务
任務列表儲存在mongoDB中 大概三百萬條
每個任務執行結束會標記上
現在有個問題
每次腳本開始時讀取100任務
用python多進程執行任務時 必須等待所有進程執行結束才能重新讀取下一個100條
有沒有什么辦法讓結束的進程不間斷去領取新的任務?
創建進程的片段
#!/usr/bin/python
# coding=utf-8
from urllib2 import Request, urlopen, URLError, HTTPError
from multiprocessing import Pool
import os
import sys
task_list = [] ?# 任務列表
def start_run(i, task_list):
print "進程"+str(i)+"開始"
# 處理task_list任務列表
print "進程"+str(i)+"結束"
if __name__ == '__main__':
print 'Parent process %s.' % os.getpid()
p = Pool(number_of_processes)
for i in xrange(number_of_tasks):
i += 1 ?# 從1開始
p.apply_async(start_run, args=(i,task_list))
p.close()
p.join()
print 'All subprocesses done.'
拜謝
使用Queue作為數據管道, 在run函數中讀取并處理數據;
可以考慮進程不關閉,在進程中讀取、處理數據,做循環。
使用celery消息隊列
總結
以上是生活随笔為你收集整理的怎么让python一直执行_怎么才能让Python多进程不间断执行任务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql的索引缺点_Sqlite数据库
- 下一篇: 计蒜客_Lpl and Energy-s