Python 2.6 отправляет объект соединения по Очереди / Канал / и т.д.

Перед рассмотрением кода:

Очищают objs и exes, и позволяют ему восстановить вещь. Наблюдайте за любым ручным взаимодействием (делает оно создает через, "делают" одними или есть ли некоторая включенная игра).

Еще лучше: дайте ему явное (просто купленный) машина, позвольте ему продемонстрировать контроль и восстановите. Тогда посмотрите, как приложение запускается и подходит (какие-либо секретные опции ввести?).

Тогда: на парном сеансе программирования добавьте одну или две опции к системе и посмотрите, где и как они реализованы.

Вышеупомянутое может звучать глупым, но я видел проекты, где одно только здание было кошмаром, и большое знание было в мозгу разработчика только. Наличие доверяемой среды сборки и необходимость выяснить, как восстановить, являются кошмаром.

11
задан Brian M. Hunt 23 September 2009 в 20:08
поделиться

1 ответ

Вот примерно то, что я сделал:

# Producer
from multiprocessing.reduction import reduce_connection
from multiprocessing import Pipe

   # Producer and Consumer share the Queue we call queue
def handle(queue):
   reader, writer = Pipe()
   pickled_writer = pickle.dumps(reduce_connection(writer))
   queue.put(pickled_writer)

и

# Consumer
from multiprocessing.reduction import rebuild_connection

def wait_for_request():
    pickled_write = queue.get(block=True) # block=True isn't necessary, of course
    upw = pickle.loads(pickled_writer) # unpickled writer
    writer = upw[0](upw[1][0],upw[1][1],upw[1][2])

Последняя строка загадочна и исходит из следующего:

>>> upw
(<function rebuild_connection at 0x1005df140>,
(('/var/folders/.../pymp-VhT3wX/listener-FKMB0W',
17, False), True, True))

Надежда, что помогает кому-то другому. У меня работает нормально.

8
ответ дан 3 December 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: