Если у вас есть несколько машин, то, безусловно, вы могли бы добиться лучшей производительности, используя их.Это будет иметь смысл только для больших рабочих нагрузок из-за задержки на удаленном компьютере и накладных расходов на связь.
В промышленности такие инструменты, как (Py) Spark и (Py) Mesos, более популярны для этой задачи.
Вы можете использовать multiprocessing
, вот пример из официальной документации :
Выполнение следующих команд создает сервер для единой общей очереди, которую удаленные клиенты могутaccess:
>>> from multiprocessing.managers import BaseManager
>>> from queue import Queue
>>> queue = Queue()
>>> class QueueManager(BaseManager): pass
>>> QueueManager.register('get_queue', callable=lambda:queue)
>>> m = QueueManager(address=('', 50000), authkey=b'abracadabra')
>>> s = m.get_server()
>>> s.serve_forever()
Один клиент может получить доступ к серверу следующим образом:
>>> from multiprocessing.managers import BaseManager
>>> class QueueManager(BaseManager): pass
>>> QueueManager.register('get_queue')
>>> m = QueueManager(address=('foo.bar.org', 50000), authkey=b'abracadabra')
>>> m.connect()
>>> queue = m.get_queue()
>>> queue.put('hello')
Другой клиент также может использовать его:
>>> from multiprocessing.managers import BaseManager
>>> class QueueManager(BaseManager): pass
>>> QueueManager.register('get_queue')
>>> m = QueueManager(address=('foo.bar.org', 50000), authkey=b'abracadabra')
>>> m.connect()
>>> queue = m.get_queue()
>>> queue.get()
'hello'