On Thu, Apr 18, 2013 at 10:02 PM, Niphlod <niph...@gmail.com> wrote: > PS: on the web2py process side, it seems that at most 10 connections are > istantiated with Redis: is there a connection pool?
I guess, because you are running the web server with 10 threads. python redis by default use a connection pool... see below > On the worker side, instead, I noticed that each job generates a new fresh > connection to Redis: is this expected ? I guess because, before starts a work, RQ forks a process. This is how understand it, I may be wrong: If a request for a connection is in a different process a new empty connection pool is created. If the request for a connection is in the same process but none connections is available python redis starts another one. If someone knows more details, please share. This is the relevant bits I guess, on how python redis manage the connections: def _checkpid(self): if self.pid != os.getpid(): self.disconnect() self.__init__(self.connection_class, self.max_connections, **self.connection_kwargs) def get_connection(self, command_name, *keys, **options): "Get a connection from the pool" self._checkpid() try: connection = self._available_connections.pop() except IndexError: connection = self.make_connection() self._in_use_connections.add(connection) return connection def disconnect(self): "Disconnects all connections in the pool" all_conns = chain(self._available_connections, self._in_use_connections) for connection in all_conns: connection.disconnect() Ricardo -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.