У меня есть требование, когда у меня есть 2 пользователя, которые называют тот же метод. Мне нужно установить некоторую синхронизацию, чтобы запрос от пользователей выполнялся последовательно. Это означает, что user1 & user2 может выполнять один и тот же метод параллельно, но если запрос user1 последовательно, каждый запрос должен выполняться последовательно. В принципе, есть способ синхронизации на основе какого-то контекста?Синхронизация Python на основе контекста
ответ
Хотя стандартный механизм блокировки в Python на самом деле не поддерживает контекст, его легко расширить.
import threading
import collections
locks = collections.defaultdict(threading.RLock)
И теперь использование:
# To acquire the lock
lock_a = locks['a'].acquire()
# Do something here...
# Release the lock again
lock_a.release()
Я думал о подобной линии, но задавался вопросом о каком-то установленном пути. У вас есть какие-либо другие предложения? – nebi
Это полностью зависит от вашей цели, как правило, я бы рекомендовал оставить это на сервере базы данных или другом программном обеспечении. Есть много, что может пойти не так с кодом, как это, поэтому, если его можно избежать, это хорошо. – Wolph
- 1. Подстройка на основе контекста python cmd
- 2. Синхронизация объекта контекста
- 3. Синхронизация потоков на основе идентификатора
- 4. C++ macro на основе контекста
- 5. Определение стилей на основе контекста
- 6. Синхронизация файлов на основе HTTP/REST
- 7. Организация Python UnitTest тестов на основе вложенности контекста подобного RSpec
- 8. Определить нерелевантные запросы на основе контекста
- 9. Синхронизация программирования сокетов python
- 10. Синхронизация SymmetricDS на основе последнего обновленного времени
- 11. внешняя конфигурация на основе пути контекста
- 12. Сортировка результатов MySQL на основе его контекста
- 13. ActiveRecord скрыть столбцы на основе контекста
- 14. Поиск одноразового хранилища на основе контекста
- 15. Rails 3 маршрутизации на основе контекста
- 16. XSD и «макс происходит» на основе контекста
- 17. Фильтрация GraphQL на основе родительского контекста
- 18. Добавление/удаление событий на основе контекста
- 19. Синхронизация процесса Python
- 20. Синхронизация встроенных интерпретаторов Python
- 21. Python многопотоковая синхронизация
- 22. Синхронизация нитей в Python
- 23. Синхронизация распределения Python на нескольких компьютерах Mac
- 24. Синхронизация процесса в Python
- 25. Является ли синхронизация python?
- 26. Отладка контекста флэш/Python
- 27. Вложение менеджеров контекста Python
- 28. Определение контекста слова - Python
- 29. Используя сумму() на узле контекста на основе значения атрибутов
- 30. Регулировка права на запись в свойства объекта на основе контекста
Вы ищете блокировки? https://docs.python.org/2/library/threading.html#threading.Lock – Wolph
@ Вольф по существу да, но на основе какого-то контекста или идентификации, которые не видны в методах блокировки, может быть, я могу ошибаться. – nebi