Одним из решений будет указание серверу заданий импортировать сам исходный модуль для каждой отправляемой вами работы. Например, если ваш скрипт выше назывался pptest.py
, вы могли бы создать задания так:
job_list.append(job_server.submit(pt.ppTask, (1,), modules=('pptest',)))
И в пределах ppTask
вы можете создать экземпляр TestClass
, например, так:
tc = pptest.TestClass()
Итак, в целом код будет выглядеть так:
import pp
class TestClass(object):
def __init__(self):
pass
def doSomething (self, number) :
print number**2
class PPTask (object) :
def __init__ (self) :
pass
def ppTask(self, number = 1) :
sum = 0
sum += number
tc = pptest.TestClass()
tc.doSomething(sum)
return sum
if __name__ == '__main__' :
job_server = pp.Server()
job_list = []
results = []
for i in xrange(10) :
pt = PPTask()
job_list.append(job_server.submit(pt.ppTask, (1,), modules=('pptest',)))
for job in job_list :
results.append(job())
for result in results :
print result