Вот вы говорите, твистед говно. Пстобот жрёт 30 метров оперативки, а вебня, написанная на mvc-фреймворке... не буду говорить сколько, но дохуя просто.
*twisted
Ссаный adbapi не умеет в курсоры, блядь. Это мне что, все 200 млн записей в список хуячить? Пидарасы. Придётся изъёбываться с кучей запросов.
Есть некий метод, который осуществляет, например, подключение к удалённому хосту и возвращает deferred, на него вешаются коллбэки, параллельно ещё всякая хуйня делается, блаблабла. Можно ли заставить твистод выполнить это действие _синхронно_,т.е. приостановить выполнение всех других задач до тех пор, пока этот ... more →
Почему они не удалили это из рассылки? http://twistedmatrix.com/pipermail/twist...
Мелкое сравнение производительности twisted и node.js
http://javascript.ru/blog/Ilya-Kantor/No...
Для Ъ: почти одинаково.
http://pastebin.com/3LtwzLy5 сделал продвинутый hello-world на twisted, с большим количеством комментариев.
Dojo и Twisted — асинхронные. Имеют схожую модель асинхронности. Как оказалось — и там и там можно вставлять одинаковые костыли (reactor.callLater(0, xyz) и setTimeout(xyz, 0) например).
Ну и какого хрена в аргумент callback у Deferred нельзя пихать другой Deferred?
Если в коллбэках пропадают эксцепшны, то дернуть их можно так:
def printException(e):
if isinstance(e, failure.Failure):
try:
e.raiseException()
except:
from traceback import print_exc
print_exc()
Хреначим addErrback по этой функции и профит.
Вот хороших туториалов по твистеду днем с огнем не сыщешь, зато код твистеда документирован очень и очень подробно. Вместо туториала можно найти простенький хелло-ворлд на твистеде, а потом запустить его в дебаггере и жать step into.
Твистед меня очень удивил. Решил я заюзать Content-Type: multipart/x-mixed-replace. Даже не думал проверить наличие какого-либо api для оного в твистеде — все равно проще руками две-три строчки написать. Запилил значит свой заголовок, руками через request.write пишу все нужные заголовки, в общем, реализую протокол ... more →
Ну нахрена нужен семафор, в котором нельзя за один раз выделить несколько маркеров?
Я не знаю, радоваться мне или плакать, что я написал такой код http://pastebin.com/jjXnzTbV
Написал чисто для себя заглушку, имитирующую twisted.protocol.MemCacheProtocol. Насквозь из костылей и фиктивных Deferred.
Ребята, я все правильно понял? Так нужно пользоваться навороченным твистедом?
http://pastebin.com/xHq1gbmS
Сейчас решил под ab прогнать свою супертяжелую функцию и обнаружил, что твистед жрет оба ядра процессора. Ну крутотень же, питон с нормальными тредами!
Спрашивал в python@cjr, но меня знатно проигнорили.
Разбираюсь тут в твистеде (конкретно сейчас — twisted.web), не могу врубиться или нагуглить, как реализовать следующую вещь. В общем, в методе render_GET я вызываю дополнительную функцию, которая работает очень долго (при этом она не лезет в сеть и нет ничего, ... more →
Читаю примеры по второтегу, и мне уже начинает казаться, что написать веб-сервер на твистеде проще, чем написать конфиг для апача.
inb4 троллейбус из хлеба
Долистал книгу Twisted Network Programming Essentials. Большая часть книги состоит из огромных примеров кода и описания что есть что. Впихнули свой smtp-сервер на десять страниц, свой ssh-сервер впихнули, какие-то непонятные мне манипуляции для аутентификации. Зато о twisted.words в книге ни слова. После прочтения ... more →
Читаю книжку по твистед дальше. Увидел в примере "from zope.interface import". У меня БАТТХЕРТ.
Я не могу, даже в книжке от O'Reilly в примере используется адский monkey-patch костыль. Что-то у меня появляются амбивалентные эмоции в сторону twisted.
*twisted is used by:
werehuman
werehuman
Артс
arts
Оранжевус Охуеннус
utros
werehuman
arts
utros