Query: Есть ли способ в Python сказать:Как настроить альтернативу `/ DEV/ГИМ /` или `_multiprocessing.SemLock` в Python
Не используйте
/dev/shm
для общего а также использовать другое временное местоположение, например/tmp
. ИЛИmultiprocessing.SemLock
Вместо использованияthreading.Lock
для синхронизации (если это возможно и не нелогично).
фон:
Я бегу простой multiprocessing.Pool
пример на с ESX (гипервизор), который работает в OSError : Function not implemented error.
Другие упоминания об этой проблеме (here и here) на StackOverflow указывают, что это происходит, когда /dev/shm
не установлен. В связи с этим _multiprocessing.SemLock
не может создать блокировку синхронизации.
Это на самом деле случай для меня, поскольку ls -lrt /dev/shm
не подходит для меня. Однако я не могу попробовать решения, рекомендованные на ссылки выше, как
mount
, как команда монтирования не реализована на платформе (ESX/VMkernel) Я работает.VM не является постоянным, и
/etc/fstab
смывается при выключении.
Так что я ищу способы либо использовать threading.Lock() для синхронизации или попросить Python, чтобы не использовать /dev/shm/
для синхронизации.
Я понимаю, как 80% вашего вопроса. Там, где я спотыкаюсь, вы пытаетесь использовать потоки ('threading.lock') и' multiprocessing'. Вы все еще не знаете, какой из них выбрать? Или вы перепутали эти два? Поскольку вы не можете использовать 'threading.lock', используя процессы – hansaplast
Обнаружили ли вы какое-нибудь обходное решение?У меня такая же проблема на AWS Lambda, где/dev/shm не монтируется в контейнере, в котором работает лямбда. – Atifm