/ / Defer-Verarbeitung in Python - Python, verdreht, Boto, Gevent, Eventlet

Defer-Verarbeitung in Python - Python, gedreht, Boto, Gevent, Eventlet

Ich versuche, Ereignisse auf eine nicht blockierende Weise zu schreiben, um keinen unserer bestehenden Prozesse zu verlangsamen.

Gibt es andere Möglichkeiten? Hat jemand Erfahrung damit?

Hintergrund: Wir planen, Ereignisse an Amazon zu schreiben CloudWatch Service und ich bin besorgt über die Latenzzeitdie PUT-Anfrage ausführen. Ich bin eigentlich nicht so besorgt darum, ein paar PUTs zu verlieren, wenn sich die Antwort ändert (wir schreiben die Ereignisse zu Alarmierungszwecken und sie werden alle nach einer Woche gelöscht).

Antworten:

1 für die Antwort № 1

Wenn die Protokollierung zu Ihrer Anwendung passt, und es klingtes sollte also einfacher sein als verdrillte. Sie können sich in einer sicheren Thread-Warteschlange im Speicher anmelden und einen separaten Thread (oder mehrere) davon ziehen und in die Cloud verschieben.

Das heißt, gedreht ist vielleicht schneller oder zumindest skalierbarer, aber insbesondere, wenn Sie es nicht wissen, mit einer steileren Lernkurve.

Wenn der Thread-Ansatz an Grenzen stößt, können Sie dies tunWechseln Sie Ihren Logging-Handler immer auf die Verwendung von Twisted, ohne die Benutzeroberfläche in die App zu ändern, so dass ich mit einem einfachen Ansatz beginnen und die Grundlagen abdecken würde.


1 für die Antwort № 2

Dies wäre trivial mit gevent (tun Sie einfach den PUT in einem separaten Greenlet und haben Sockets gepatcht).