Я пытаюсь запустить какой-нибудь скрипт на 10 подключенных платах (параллельный лимит процесса 4 для стабильности).Я столкнулся со следующей ошибкой, и вот фрагмент кода.Я полагаю, что это связано с экземпляром класса, но каждый объект класса является независимым, и ни один из ресурсов не является общим (или не возвращенным)
TypeError: can't pickle thread.lock objects
Код:
def update_device_worker(worker):
worker.run()
class Worker :
def __init__(self, device):
self.device = device
def run(self):
<< bash code to run on IoT devices to cleanup and restart>>
pool = multiprocessing.Pool(processes=4, maxtasksperchild=1)
workers = [Worker(d) for d in connected_IoT_Devices]
pool.map(update_device_worker, workers)
class Device(object):
def __init__(self, device):
self.device = device
self.ipaddress, self.serial, self.model, self.log,
= None, None, None, None
self.log = os.path.join(logPath,self.serial+ ".log")
custom_logger(self.log)
self.logger = logging.getLogger(self.log)
self.logger.info("Logger started for %s ", self.serial)