Piszę aplikację WSGI przy użyciu stosu Nginx/Gunicorn/Bottle, który akceptuje żądanie GET, zwraca prostą odpowiedź, a następnie zapisuje wiadomość do RabbitMQ . Gdybym był uruchomiony przez prostą butelkę, używałbym połączenia RabbitMQ za każdym razem, gdy aplikacja otrzyma GET. Jednak w Gunicorn wygląda na to, że pracownicy za każdym razem niszczą i odtwarzają połączenie MQ. Zastanawiałem się, czy istnieje dobry sposób na ponowne wykorzystanie tego połączenia.Udostępnianie obiektu między pracownikami Gunicorn lub utrzymywanie obiektu wewnątrz pracownika
Więcej szczegółowych informacji:
##This is my bottle app
from bottle import blahblahblah
import bottle
from mqconnector import MQConnector
mqc = MQConnector(ip, exchange)
@route('/')
def index():
try:
mqc
except NameError:
mqc = MQConnector(ip, exchange)
mqc.publish('whatever message')
return 'ok'
if __name__ == '__main__':
run(host='blah', port=808)
app = bottle.default_app()