Лучший подход для синхронизированных блокировок Python на разных машинах

Таким образом, у меня есть Пользователь A и Use rB, которые обращаются к одному и тому же сценарию do_cool_things.py в сети.

Я хотел бы сделать так, чтобы к методу crit_cool_things() обращался только один пользователь за раз.

Что будет лучшим подходом для этого?

Моей первой мыслью была многопоточность или многопроцессорность, но для этого требовалось, чтобы каждый экземпляр Python разделял часть памяти, чтобы использовать одни и те же блокировки. Это кажется невозможным, если его отдельные машины обращаются к do_cool_things.py.

Теперь я думаю, что простого файла.lock в общем месте будет достаточно.

Как вы думаете?

1 ответ

Вы можете использовать Redis, как:

if redis.setnx(self.key, expires):

посмотрите пример здесь

Другие вопросы по тегам