Фляга \werkzeug: перехват рабочего прекращения
Есть ли способ выполнить некоторый код непосредственно перед выключением рабочего? Я не слишком уверен в модели исполнения колбы \werkzeug, ситуация такова:
Во время создания приложения фляги я запускаю поток deamon, чтобы сделать некоторые внешние вещи (по существу, ожидая в очереди); Я настроил эту тему как демон, потому что я не хочу, чтобы она предотвращала завершение работы работника, работающего с флягой, когда это необходимо. есть моя проблема: мне нужно выполнить некоторый код очистки непосредственно перед тем, как поток был убит рабочим, и мое решение состоит в том, чтобы выполнить эти операции на событии завершения (если оно есть) рабочего
1 ответ
С python вы можете использовать хук uwsgi.atexit. Функция обратного вызова будет выполнена перед выходом.
import uwsgi, os
from flask import Flask
app = Flask('demo')
@app.route('/')
def index():
return "Hello World"
def callback():
print "Worker %i exinting" % os.getpid()
uwsgi.atexit = callback