> 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

Reply via email to