В моем питона коде я использую захватить питона LIB и попытаться открыть 3 сайта в õpe питона скриптPython процессов и «не удалось выделить память»
Мой текущий код:
from grab import Grab
...
g = Grab(interface=ip, headers=headers)
a = g.go('http://site1.com');
g = Grab(interface=ip, headers=headers)
b = g.go('http://site2.com');
g = Grab(interface=ip, headers=headers)
c = g.go('http://site3.com');
И этот код работает отлично, если я запускаю даже 10 сценариев python
Но я решил, что мне лучше открыть все соединения за одно и то же время (нет ожиданий, когда сайт «a» будет загружен перед открытым сайтом «b»). И я попытался сделать процессы:
pa = Process(target=m_a, args=(ip))
pb = Process(target=m_b, args=(ip))
pc = Process(target=m_c, args=(ip))
pa.start()
pb.start()
pc.start()
Но когда я пытаюсь запустить более 5 процессов python, я вижу сообщение «не могу выделить память».
Почему этот код работает в одном файле python и «не может выделить память», когда я пытаюсь запустить его процессами для каждого запроса на сайт?
Действительность Я уже использую процесс питона для запуска этого питона скрипт, и мое имя ! = «главный». В первом питона (который запустить этот скрипт) Я использую этот код:
if __name__ == '__main__':
jobs = []
for f in [exit_error, exit_ok, return_value, raises, terminated]:
print 'Starting process for', f.func_name
j = multiprocessing.Process(target=f, name=f.func_name)
jobs.append(j)
j.start()
Я использую VPS OpenVZ 512
отчета об ошибке:
Process Process-18:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/root/_scripts/bf/check_current.py", line 140, in worker
p.start()
File "/usr/lib/python2.7/multiprocessing/process.py", line 130, in start
self._popen = Popen(self)
File "/usr/lib/python2.7/multiprocessing/forking.py", line 120, in __init__
self.pid = os.fork()
OSError: [Errno 12] Cannot allocate memory
Я добавил полный TraceBack – SPnova