У меня есть http-сервер на основе django, и я использую django.core.cache.backends.memcached.MemcachedCache в качестве клиентской библиотеки для доступа к memcache. Я хочу знать, можем ли мы установить тайм-аут или что-то (скажем, 500 мс.), Чтобы вызов memcached возвращался False, если он не может получить доступ к кешу на 500 мс. и мы делаем вызов в БД. Есть ли такая настройка для этого?Задание таймаута при извлечении/вводе данных в memcache (django)
3
A
ответ
0
Не пробовал это раньше, но вы можете использовать потоки и настроить тайм-аут для вызова функции в кеш. В качестве примера, игнорировать пример, приведенный в основном корпусе на этой ссылке, но посмотрите на комментарий Джима Кэрролла:
http://code.activestate.com/recipes/534115-function-timeout/
адаптированный к чему-то вы могли бы использовать:
from threading import Timer
import thread, time, sys
def timeout():
thread.interrupt_main()
try:
Timer(0.5, timeout).start()
cache.get(stuff)
except:
print "Use a function to grab it from the database!"
Я не есть время проверить его прямо сейчас, но моя забота будет о том, является ли Django самой потоковой, и если да, то прерывает основной поток, что вы действительно хотите сделать? В любом случае, это потенциальная отправная точка. Я искал вариант конфигурации, который позволял бы это и ничего не нашел.
Смежные вопросы
- 1. Задание таймаута запроса в SQL Server
- 2. Django formset - не задание начальных данных при передаче данных
- 3. Задание таймаута с mapWithState в Spark Streaming
- 4. Задание таймаута в git push + pull
- 5. Задание единиц в Django
- 6. Django - настроить задание?
- 7. Предотвращение таймаута при подключении
- 8. Самостоятельное задание моделей Django
- 9. Почему в моем Django не работает memcache?
- 10. Django Celery получить задание
- 11. Получение данных из memcache
- 12. Знание учетных данных Memcache
- 13. Django + SpatiaLite + srid + задание расстояния
- 14. Как запустить запланированное задание в Django?
- 15. Задание конкретного формата формы в Django
- 16. является memcache относительно базы данных
- 17. heroku: как избежать таймаута при отправке некоторых данных в heroku
- 18. Heroku Collectstatic таймаута с Django App
- 19. Сброс данных ключа memcache после изменения данных
- 20. Как реализовать memcache в cakephp?
- 21. Задание mySQL ENUM в модели Django
- 22. Задание псевдонима для имен столбцов в Django
- 23. Явное задание приоритета в фильтрах шаблонов Django
- 24. Задание пути каталога статических изображений в Django
- 25. Задание привязок данных в WPF
- 26. Устойчивость данных по данным GAE в Memcache
- 27. Как использовать memcache в потоке данных?
- 28. Как хранить сложные распорки данных в Memcache
- 29. Использование Memcache в Django/Python 3,4 с Heroku
- 30. Шаблоны для работы с memcache Кэширование в Django
У этого действительно есть проблемы с django, потому что он не заправлен. Я смотрел код, и тайм-аут сокета указан в клиенте memcache python (memcache.py) с помощью _SOCKET_TIMEOUT. По умолчанию установлено значение 3 секунды. Для меня это слишком высоко. Вероятно, мне придется изменить это значение. Но действительно странно, что клиент memcache python не предоставляет никакого способа настроить этот тайм-аут. – Rajat
ДА, вы можете указать время ожидания. передайте параметр socket_timeout в Client() memcache, как в: из memcache import Client; c = Клиент (['localhost'], socket_timeout = 10.5) –