1

次の HTTP リダイレクト サーバーを作成しました。テスト中に、主にcouchbaseへの同期呼び出しが原因で、ブロック方法で呼び出しを行っていることに気付きました。特定のソケットで並列リクエスト/レスポンスを実行するにはどうすればよいですか? 呼び出しが db に対して行われる非同期を実装する必要がありますか?

class ABC(web.RequestHandler):

        def get(self):
                self.MartiniTagKey = self.get_argument("mtag", strip=True) #TEST1
                self.couchbase_start_time = time.time()
                couchbase_query_result = bucket.get(self.MartiniTagKey) #TEST2
                self.CouchbaseMS = time.time() - self.couchbase_start_time
                url_to_redirect = json.loads(couchbase_query_result[2])['metaTag'] #TEST3
                self.redirect(url_to_redirect)  



if __name__=="__main__":
        options.options.log_file_prefix = log_directory
        options.parse_command_line()
        db=MySQLdb.connect(host=mysql_host, user=mysql_user,
        passwd=mysql_password, port=int(mysql_port), db=mysql_db)
        cursor = db.cursor()
        couchbase = Couchbase(couchbase_host+':'+couchbase_port, couchbase_bucket, couchbase_password)
        process.fork_processes(0)
        bucket = couchbase[couchbase_bucket]
        app = web.Application(handlers=[(r"/", ABC),])
        app.listen(8080,"")
        io_loop = ioloop.IOLoop.instance()
        io_loop.start()
4

0 に答える 0