Мы разрабатываем распределенное приложение на Python + Celery для нашей очереди задач.
Наше приложение требует, чтобы мы загружали электронные письма от удаленного интернет-провайдера через IMAP (например, gmail), и мы надеемся, что эта задача будет выполняться параллельно. Для данной учетной записи электронной почты вам предоставляется ограниченное количество симуляционных подключений, поэтому нам нужен способ атомарного отслеживания наших активных подключений для всех загружаемых учетных записей.
Я нашел несколько примеров атомарных блокировок для Celery с использованием Redis, но ни один из них не может отслеживать пул ограниченных ресурсов, подобных этому, и все попытки реализовать наши собственные привели к трудным отладкам условий гонки, что приводило к наши замки с перерывами никогда не освободятся.