Скрученный Python и соединения с базой данных

Я думаю, что Электроинструменты Основы Команды являются способом пойти. Если там ожидают, изменяется, можно переместить их в shelveset, тогда отменяют или регистрируются во всех незаконченных изменениях прежде, чем выполнить команду отката. См. http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20undo%20a%20check-in&referringTitle=Source%20Control%20Practices%20at%20a%20Glance для получения дополнительной информации.

5
задан Doug 10 November 2009 в 03:20
поделиться

4 ответа

twisted.enterprise.adbapi seems the way to go -- do you think it fails to match your requirements, and if so, can you please explain why?

3
ответ дан 15 December 2019 в 01:04
поделиться

В Twisted вам нужна оболочка вокруг функции, которая возвращает Deferred (например, уровень Twisted DB), ожидает результатов и возвращает их. Однако вы не можете «занято-ждать», так как это израсходует ваши циклы реактора, а проверка выполнения задачи с использованием Twisted неблокирующего ожидания, вероятно, неэффективна.

Решит ли вашу проблему inlineCallbacks или deferredGenerator? Им нужен современный Twisted. См. Документацию twistedmatrix .

def thingummy():
   thing = yield makeSomeRequestResultingInDeferred()
   print thing #the result! hoorj!
thingummy = inlineCallbacks(thingummy)

Другой вариант - иметь два метода, выполняющих один и тот же шаблон SQL, один из которых использует runInteraction , который блокирует, а другой - runQuery, который возвращает Deferred, но это потребует большего количества путей кода, которые делают то же самое.

1
ответ дан 15 December 2019 в 01:04
поделиться

Думали ли вы о заимствовании страницы из стиля передачи продолжения ? Безстековый Python поддерживает продолжения напрямую , если вы его используете, и этот подход, похоже, уже вызвал некоторый интерес .

0
ответ дан 15 December 2019 в 01:04
поделиться

Все библиотеки баз данных, которые я видел, кажутся устойчиво синхронными.

Похоже, Twisted.enterprise.abapi решает эту проблему, используя потоки для управления пулом соединений и обертывая базовые библиотеки баз данных. Это явно не идеально, но я полагаю, что это сработает, но на самом деле я сам не пробовал.

В идеале должен быть какой-то способ интегрировать sqlalchemy и twisted. Я нашел этот проект nadbapi , который утверждает, что это делает, но похоже, что он не обновлялся с 2007 года.

0
ответ дан 15 December 2019 в 01:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: