Я ищу способ предотвратить запуск несколькими одновременными командами для прослушивателя XMLRPC на Python. Слушатель отвечает за запуск сценариев для выполнения задач в этой системе, которые потерпят неудачу, если несколько пользователей попытаются выпустить эти команды одновременно. Есть ли способ заблокировать все входящие запросы, пока один экземпляр не завершит?Python XMLRPC с параллельными запросами
ответ
Я думаю, что модуль SimpleXMLRPCServer python - это то, что вы хотите. Я считаю, что поведение по умолчанию этой модели блокирует новые запросы при обработке текущего запроса. Поведение по умолчанию дало мне массу проблем, и я изменил это поведение путем смешивания в классе ThreadingMixIn, чтобы сервер xmlrcc мог отвечать на несколько запросов одновременно.
class RPCThreading(SocketServer.ThreadingMixIn, SimpleXMLRPCServer.SimpleXMLRPCServer):
pass
Если я правильно понял ваш вопрос, SimpleXMLRPCServer - это решение. Просто используйте его напрямую.
+1, что идеально! –
У вас есть другой канал связи? Если «да», то между сервером и клиентами будет выполняться протокол «перезвони мне, когда моя очередь».
Другими словами, каждый клиент зарегистрирует свое намерение выдавать запросы серверу, и указанный сервер «обратится» к следующему клиенту, когда он будет готов.
Есть несколько вариантов: сервер
- Использование однопроцессный-один поток, как
SimpleXMLRPCServer
для обработки запросов в дальнейшем. - Используйте
threading.Lock()
в потоковом сервере. - Вы используете внешний механизм блокировки (например, модуль
lockfile
илиGET_LOCK()
в mysql) на многопроцессорном сервере.
- 1. Работа с параллельными запросами в Meteor
- 2. Ошибка модуля Async с параллельными запросами API
- 3. Почему мой LibraryCache блокируется с параллельными запросами?
- 4. SignalR: рабочий процесс ограничен 10 параллельными запросами
- 5. CSV-загрузка с параллельными запросами REST максимизирует ресурсы процессора
- 6. Сервер Node.js с несколькими параллельными запросами, как он работает?
- 7. Мониторинг $ .Отмечаемый прогресс с несколькими параллельными запросами webservice
- 8. Как модификатор $ inc работает с параллельными запросами в mongodb?
- 9. Почему я иногда получаю искаженные ответы с параллельными запросами NSURLSession
- 10. Python Многопоточный XMLRPC-сервер (?)
- 11. python xmlrpc timeout error
- 12. Wordpress XmlRpc Python Ошибка
- 13. Ошибка функции XMLRPC python
- 14. Python XMLRPC Ошибка Nessus
- 15. абстракция с python-запросами
- 16. Исключение с запросами python
- 17. ServiceStack/FluentNHibernate/MySQL - То же соединение, используемое двумя параллельными запросами
- 18. Есть ли шаблон проектирования для управления параллельными запросами AJAX?
- 19. понимание списка с параллельными циклами python
- 20. Новичок с параллельными массивами в python
- 21. Встреча с wordpress 'библиотека xmlrpc python
- 22. Проблемы с python, xmlrpc, tidy и unicode
- 23. Python xmlrpc server в windows
- 24. Python Tuple в Java XMLRPC
- 25. Загрузка Ajax с запросами Python
- 26. Метод отправки Python с запросами
- 27. Python отправить теги с запросами
- 28. Кодирование с запросами в python
- 29. Python нажмите кнопку с запросами
являются ли клиенты осведомленными о матрице конфликта? должны ли они быть достаточно умными, чтобы планировать себя в соответствии с этой матрицей? как они выполняют синхронизацию и т. д. ... – jldupont
вы используете SimpleXMLRPCServer, так как я думал, что это однопоточный ... – SeriousCallersOnly
Я использую SimpleXMLRPCServer, но, похоже, я могу запустить ту же команду с разных хостов одновременно, что и есть необходимо предотвратить – MattB