Отложите обработку в Python - PullRequest
0 голосов
/ 18 августа 2011

Я пытаюсь писать события неблокирующим образом, чтобы не замедлять ни один из наших существующих процессов. Похоже, что доступны два варианта:

  • использовать Twisted defer object
  • создать python logging handler

Есть ли другие варианты. У кого-нибудь есть опыт с этим?

Справочная информация. Мы планируем записывать события в службу Amazon 101 * CloudWatch , и меня беспокоит задержка выполнения запроса PUT. На самом деле меня не очень беспокоит потеря нескольких PUT, если это изменит ответ (мы пишем события для целей оповещения, и они все равно будут удалены через неделю).

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Это было бы тривиально с gevent (просто сделайте PUT в отдельном гринлете и залатайте сокет).

1 голос
/ 18 августа 2011

Если логирование подходит вашему приложению и звучит так, это должно быть проще, чем использовать витую. Вы можете войти в потокобезопасную очередь в памяти и получить отдельный поток (или несколько) из него и отправить в облако.

Тем не менее, скрученный может быть быстрее или, по крайней мере, более масштабируемым, но, особенно, если вы этого не знаете, с более крутой кривой обучения.

Если подход к потокам выходит за пределы, вы всегда можете переключить ваш обработчик журналов на использование витой, не меняя интерфейс к приложению, так что я бы начал, с простого подхода и основ.

...