Comments 18
DNA который мешает разгласить суть проблемы — это сильно ;)
+4
А по сути статьи, не понял в чём «научная новизна»? Автор открыл для себя DeferredLock?
0
Автор открыл для себя то, что в асинхронном приложении тоже бывают проблемы с конкурентным доступом, и хотел этим поделиться. Ну и DeferredLock он тоже для себя открыл, написав вначале штуки 2 вариаций «на тему».
+2
Насколько я понимаю, всё описанное не работает, если запускать несколько копий приложения, а так нередко делают, чтобы нагрузить равномерно многоядерную систему. Как быть в таком случае?
0
ну твистед позволит наиболее полно загрузить одно ядро, так что если нету реально необходимости параллелить (например когда большую часть времени мы ждем ответы), то лучше не параллелить.
ну а если надо — делается аналогичная реализация на базе хотя бы memcached или flock. даже сам класс придется не сильно много переписывать
ну а если надо — делается аналогичная реализация на базе хотя бы memcached или flock. даже сам класс придется не сильно много переписывать
+1
d.addCallback(power,a) читать как d.addCallback(multiply, a)?
ну и еще бы хорошо добавить d.addCallbacks(release_pool, release_pool), а то релиз походу не вызывается во втором примере
ну и еще бы хорошо добавить d.addCallbacks(release_pool, release_pool), а то релиз походу не вызывается во втором примере
0
ну и d = some_service.do_long_boring_call(a) — этот вызов же скорее всего должен вернуть Deferred, иначе смысл использовать лок? в таком случае в multiply попадет не результат, а всего лишь Deferred.
п.с. ничего личного, но с твистедом и так местами непонятно, что произошло, так что примеры без адекватной обработки ошибок и содержащие ошибки могут еще больше запутать понимание
п.с. ничего личного, но с твистедом и так местами непонятно, что произошло, так что примеры без адекватной обработки ошибок и содержащие ошибки могут еще больше запутать понимание
0
Да, кстати. Deferred в Twisted — это реализация паттерна «Futures and Promises».
0
> Так что общий совет — работая с twisted — больше читайте исходники, там спрятаны велосипеды на все случаи жизни.
Это уж точно.
Один из основных минусов твистеда — крайне скудная документация. Без регулярного копания в кишках использовать его в полную силу несколько затруднительно.
Это уж точно.
Один из основных минусов твистеда — крайне скудная документация. Без регулярного копания в кишках использовать его в полную силу несколько затруднительно.
0
Only those users with full accounts are able to leave comments. Log in, please.
Конкурентность в асинхронном приложении на примере twisted