uwsgi postfork不起作用

2024-05-06 06:32:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我似乎无法运行@postfork函数。。。在

  1 import uwsgi
  2 from uwsgidecorators import *
  3 from gevent import monkey; monkey.patch_all()
  4 import sys
  5 import umysql
  6 import time
  7 
  8 DB_HOST = 'stage.masked.com'
  9 DB_PORT = 3306
 10 DB_USER = 'masked'
 11 DB_PASSWD = 'masked'
 12 DB_DB = 'masked'
 13 
 14 mysql_conn = None
 15 
 16 @postfork
 17 def zebra():
 18     print "I AM ZEBRA"
 19     raise
 20     
 21 @postfork
 22 def setup_pool():
 23     global mysql_conn
 24     mysql_conn = umysql.Connection()
 25     print "HIII" 
 26     sys.stderr.write(str(mysql_conn.is_connected()))
 27     mysql_conn.connect (DB_HOST, DB_PORT, DB_USER, DB_PASSWD, DB_DB)
 28     sys.stderr.write(str(mysql_conn.is_connected()))
 29     
 30 def application(env, start_response):
 31     print "HALLO"

当我启动uwsgi时,我什么都得不到,直到我找到路由(在nginx中定义,调用这个py应用程序)。我是如何开始uwsgi的:

^{pr2}$

当我上路时,我得到:

HALLO

如何运行@postfork函数?我的最终目标是在应用程序函数中获得连接池。在

谢谢!在

更新:如果我用--vhost替换--wsgi文件=服务器.py,它按预期工作。在


Tags: 函数fromimporthostdbdefsysmysql
1条回答
网友
1楼 · 发布于 2024-05-06 06:32:45

如果使用动态应用程序,则没有可捕获的fork()(fork()都发生在应用程序加载之前)

可以在.py文件中移动postfork钩子,该文件可以在服务器启动时导入

导入模块名/文件名

相关问题 更多 >