Răsfoiți Sursa

update tornado (#4804)

Kamil Endruszkiewicz 6 ani în urmă
părinte
comite
af717448a9

+ 2 - 6
frameworks/Python/tornado/commons.py

@@ -1,4 +1,4 @@
-import json
+import ujson as json
 import tornado.web
 
 
@@ -12,7 +12,6 @@ class BaseHandler(tornado.web.RequestHandler):
 
 
 class PlainHandler(BaseHandler):
-
     def set_default_headers(self):
         self.set_header("Content-Type", "text/plain")
 
@@ -22,7 +21,6 @@ class HtmlHandler(BaseHandler):
         self.set_header("Content-Type", "text/html; charset=UTF-8")
 
 class JsonHandler(BaseHandler):
-
     def set_default_headers(self):
         self.set_header("Content-Type", "application/json")
 
@@ -35,8 +33,6 @@ class PlaintextHelloWorldHandler(PlainHandler):
 
 
 class JsonHelloWorldHandler(JsonHandler):
-
     def get(self):
-        HELLO_WORLD = {"message": "Hello, World!"}
-        obj = json.dumps(HELLO_WORLD)
+        obj = json.dumps({"message": "Hello, World!"})
         self.finish(obj)

+ 0 - 2
frameworks/Python/tornado/requirements_mongo.txt

@@ -1,2 +0,0 @@
-tornado==5.0.1
-motor==1.2.1

+ 0 - 2
frameworks/Python/tornado/requirements_pg.txt

@@ -1,2 +0,0 @@
-tornado==5.0.1
-Momoko==2.2.4

+ 3 - 0
frameworks/Python/tornado/requirements_py2_mongo.txt

@@ -0,0 +1,3 @@
+tornado==5.1.1
+motor==2.0.0
+ujson==1.35

+ 3 - 0
frameworks/Python/tornado/requirements_py2_pg.txt

@@ -0,0 +1,3 @@
+tornado==5.1.1
+Momoko==2.2.4
+ujson==1.35

+ 4 - 0
frameworks/Python/tornado/requirements_py3_mongo.txt

@@ -0,0 +1,4 @@
+tornado==6.0.2
+motor==2.0.0
+uvloop==0.12.2
+ujson==1.35

+ 1 - 1
frameworks/Python/tornado/requirements_py3_uvloop.txt

@@ -1,4 +1,4 @@
 asyncpg==0.18.3
-tornado==6.0
+tornado==6.0.2
 ujson==1.35
 uvloop==0.12.1

+ 18 - 17
frameworks/Python/tornado/server_py3.py

@@ -1,7 +1,8 @@
 #!/usr/bin/env python
 import asyncio
-import json
+import ujson as json
 import motor
+import uvloop
 import tornado.ioloop
 import tornado.web
 import tornado.httpserver
@@ -34,11 +35,11 @@ class MultipleQueriesHandler(JsonHandler):
             queries = int(self.get_argument(self.QUERIES))
         except Exception:
             queries = 1
-        else:
-            if queries < 1:
-                queries = 1
-            elif queries > 500:
-                queries = 500
+
+        if queries < 1:
+            queries = 1
+        elif queries > 500:
+            queries = 500
 
         worlds = []
         futures, _ = await asyncio.wait([db.world.find_one(randint(1, 10000)) for _ in range(queries)])
@@ -58,11 +59,11 @@ class UpdateHandler(JsonHandler):
             queries = int(self.get_argument(self.QUERIES))
         except Exception:
             queries = 1
-        else:
-            if queries < 1:
-                queries = 1
-            elif queries > 500:
-                queries = 500
+
+        if queries < 1:
+            queries = 1
+        elif queries > 500:
+            queries = 500
 
         worlds = []
         updates = []
@@ -76,16 +77,14 @@ class UpdateHandler(JsonHandler):
             worlds.append({self.ID: int(world['_id']),
                     self.RANDOM_NUMBER: world[self.RANDOM_NUMBER]})
         await asyncio.wait(updates)
+
         self.finish(json.dumps(worlds))
 
 
 class FortuneHandler(HtmlHandler):
     async def get(self):
-        fortunes = []
-
-        async for fortune in db.fortune.find():
-            fortunes.append(fortune)
-        fortunes.append({self.ID: 0, 'message': 'Additional fortune added at request time.'})
+        fortunes = [fortune async for fortune in db.fortune.find()]
+        fortunes.append({'id': 0, 'message': 'Additional fortune added at request time.'})
 
         fortunes.sort(key=lambda f: f['message'])
         self.render('fortunes.html', fortunes=fortunes)
@@ -101,12 +100,14 @@ application = tornado.web.Application([
 ],
     template_path="templates"
 )
+
 application.ui_modules = {}
 
 if __name__ == "__main__":
+    uvloop.install()
     tornado.options.parse_command_line()
     server = tornado.httpserver.HTTPServer(application)
-    server.bind(options.port, backlog=options.backlog)
+    server.bind(options.port, backlog=options.backlog, reuse_port=True)
     server.start(0)
 
     ioloop = tornado.ioloop.IOLoop.instance()

+ 1 - 1
frameworks/Python/tornado/tornado-postgresql-raw.dockerfile

@@ -4,6 +4,6 @@ ADD ./ /tornado
 
 WORKDIR /tornado
 
-RUN pip install -r /tornado/requirements_pg.txt
+RUN pip install -r /tornado/requirements_py2_pg.txt
 
 CMD python server_pg.py --port=8080 --postgres=tfb-database --logging=error

+ 1 - 1
frameworks/Python/tornado/tornado-py3.dockerfile

@@ -4,6 +4,6 @@ ADD ./ /pyramid
 
 WORKDIR /pyramid
 
-RUN pip3 install -r /pyramid/requirements_mongo.txt
+RUN pip3 install -r /pyramid/requirements_py3_mongo.txt
 
 CMD python3 server_py3.py --port=8080 --mongo=tfb-database --logging=error

+ 1 - 1
frameworks/Python/tornado/tornado-pypy2.dockerfile

@@ -4,6 +4,6 @@ ADD ./ /tornado
 
 WORKDIR /tornado
 
-RUN pip install -r /tornado/requirements_mongo.txt
+RUN pip install -r /tornado/requirements_py2_mongo.txt
 
 CMD pypy server_py2.py --port=8080 --mongo=tfb-database --logging=error

+ 1 - 1
frameworks/Python/tornado/tornado.dockerfile

@@ -4,6 +4,6 @@ ADD ./ /tornado
 
 WORKDIR /tornado
 
-RUN pip install -r /tornado/requirements_mongo.txt
+RUN pip install -r /tornado/requirements_py2_mongo.txt
 
 CMD python server_py2.py --port=8080 --mongo=tfb-database --logging=error