Пример #1
0
 def connect(self):
     """Connect to beanstalkd server."""
     self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     self.socket.settimeout(self._connect_timeout)
     SocketError.wrap(self.socket.connect, (self.host, self.port))
     self.socket.settimeout(None)
     self.socket_file = self.socket.makefile('rb')
Пример #2
0
 def _interact(self, command, expected_ok, expected_err=[]):
     connection = self._connection_pool.get_connection()
     SocketError.wrap(connection.socket.sendall, command)
     status, results = self._read_response(connection)
     if status in expected_ok:
         return results
     elif status in expected_err:
         raise CommandFailed(command.split()[0], status, results)
     else:
         raise UnexpectedResponse(command.split()[0], status, results)
Пример #3
0
 def _read_body(self, connection, size):
     body = SocketError.wrap(connection.socket_file.read, size)
     SocketError.wrap(connection.socket_file.read, 2)  # trailing crlf
     if size > 0 and not body:
         raise SocketError()
     return body
Пример #4
0
 def _read_response(self, connection):
     line = SocketError.wrap(connection.socket_file.readline)
     if not line:
         raise SocketError()
     response = line.split()
     return response[0], response[1:]