需求:封装多进程模块 1.需要的时候记录日志记录整个业务场景 2.主进程能够自动唤醒僵尸进程 3.将进程编号加入回调函数
问题: 1.记录整个多进程操作业务的场景,这怎么记,从哪下手? 2.主进程自动唤醒僵尸进程是怎么实现呢? 3.将进程编号加入回调函数,是怎么加的呢?有意义吗?
求教下以上三个进程该如何入手,已经写过 n 遍,被打回几遍要重新写,现在无从下手。。。。 为了表示我不是伸手党以下是我的代码谢谢各位~~~
import traceback
import multiprocessing
from lib_log import LibLog
class MultiProcess(object):
"""
多进程操作
方法: worker
返回类型: bool 返回内容 True
接收参数:
process_num:进程数量
callback_func:多进程执行的函数
arg :函数中的参数(无可忽略)
kargs :函数中的参数是字典数据结构(无可忽略)
e.g:
mp = MultiProcess(10, func)
or mp = MultiProcess(10, func, n)
mp.worker()
"""
rpc_log = LibLog()
def __init__(self, process_num, callback_func, arg='', kwarg={}):
self.process_num = process_num
self.callback_func = callback_func
self.arg = arg
self.kwarg = kwarg
def worker(self):
jobs = []
try:
jobs_start_stime = self.__point_time()
for i in xrange(self.process_num):
try:
jobs.append(multiprocessing.Process(target=self.callback_func,
args=(self.arg), kwargs=self.kwarg))
except:
traceback.print_exc()
for job in jobs:
job.start()
job.join()
return True
except:
traceback.print_exc()
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.