> Hi, > > I created postfork decorater to forking my config class for each worker. > In > config class there is establishing mysql database connection in init. > Everything seems to be working fine (selects working well) but mysql "show > global status" shows after starting uWSGI RPC server with 3 workers: > Threads_cached 2 > Threads_connected 1 > Threads_created 3 > Threads_running 1 > > Shouldn't be there "Threads_connected 3"? Or do I have something wrong in > calling @postfork? > > Short examples: > > *file: server.py* > from lib import config as configapp > @postfork > def init(): > import __builtin__ > __builtin__.ConfigPhotoserver = configapp.ConfigPhotoserver > > import rpcinterface as iface > ... > > > *file: rpcinterface.py: *there is no importing config, ConfigPhotoserver > is > already in global scope (checked with: print globals()) > def getGallery(): > cfg = ConfigPhotoserver() > conn = cfg.sql.conn > > > c = conn.cursor() > # .... etc > > *file config.py:* > class ConfigPhotoserver: > def __init__(self): > # some init ConfigParser stuff ....etc > > self.sql = ConfigSql(parser) > > class ConfigSql(Sql): > def __init__(self): > # parsing values needed for connection ....etc > > self.connect() > > *file sql.py:* > import* *MySQLdb > class Sql(): > def __init__(self): > self.conn = False > #enddef > > def connect(self): > self.conn = \ > MySQLdb.connect( > user=self.user, \ > host=self.host, \ > passwd=self.password, \ > db=self.database, \ > unix_socket=self.socket > ) > > return self.conn > > Maybe it is a bit complicated but it seemed to me as the best solution: if > I want db connection was created after forking each worker (and to be > write-safe) and not to pass param conn in each function that needs it. > > Thanks for any remarks :-) >
The 2 cached threads should confirm you the code is right. Does show processlist reports 3 peers ? -- Roberto De Ioris http://unbit.it _______________________________________________ uWSGI mailing list [email protected] http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
