Kamil Endruszkiewicz 7 жил өмнө
parent
commit
51035538bc

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

@@ -1,2 +1,2 @@
-tornado==4.5.1
-motor==1.1
+tornado==5.0.1
+motor==1.2.1

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

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

+ 1 - 1
frameworks/Python/tornado/server_pg.py

@@ -12,7 +12,7 @@ from commons import JsonHandler, JsonHelloWorldHandler, PlaintextHelloWorldHandl
 
 
 
 
 tornado.options.define('port', default=8888, type=int, help="Server port")
 tornado.options.define('port', default=8888, type=int, help="Server port")
-tornado.options.define('postgres', default=None,
+tornado.options.define('postgres', default="localhost",
                        type=str, help="PostgreSQL host")
                        type=str, help="PostgreSQL host")
 tornado.options.define('backlog', default=8192, type=int,
 tornado.options.define('backlog', default=8192, type=int,
                        help="Server backlog")
                        help="Server backlog")

+ 11 - 10
frameworks/Python/tornado/server_py3.py

@@ -1,5 +1,5 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
-
+import asyncio
 import json
 import json
 import motor
 import motor
 import tornado.ioloop
 import tornado.ioloop
@@ -9,9 +9,6 @@ import tornado.httpserver
 from random import randint
 from random import randint
 from tornado.options import options
 from tornado.options import options
 from commons import JsonHandler, JsonHelloWorldHandler, PlaintextHelloWorldHandler, HtmlHandler
 from commons import JsonHandler, JsonHelloWorldHandler, PlaintextHelloWorldHandler, HtmlHandler
-from tornado.ioloop import IOLoop
-
-IOLoop.configure('tornado.platform.asyncio.AsyncIOLoop')
 
 
 
 
 options.define('port', default=8888, type=int, help="Server port")
 options.define('port', default=8888, type=int, help="Server port")
@@ -44,8 +41,10 @@ class MultipleQueriesHandler(JsonHandler):
                 queries = 500
                 queries = 500
 
 
         worlds = []
         worlds = []
-        for future in [db.world.find_one(randint(1, 10000)) for _ in range(queries)]:
-            world = await future
+        futures, _ = await asyncio.wait([db.world.find_one(randint(1, 10000)) for _ in range(queries)])
+
+        for future in futures:
+            world = future.result()
 
 
             worlds.append({self.ID: int(world['_id']),
             worlds.append({self.ID: int(world['_id']),
                     self.RANDOM_NUMBER: int(world[self.RANDOM_NUMBER])})
                     self.RANDOM_NUMBER: int(world[self.RANDOM_NUMBER])})
@@ -66,15 +65,17 @@ class UpdateHandler(JsonHandler):
                 queries = 500
                 queries = 500
 
 
         worlds = []
         worlds = []
-        futures = [db.world.find_one(randint(1, 10000)) for _ in range(queries)]
+        updates = []
+        futures, _ = await asyncio.wait([db.world.find_one(randint(1, 10000)) for _ in range(queries)])
 
 
-        for world in futures:
-            world = await world
+        for future in futures:
+            world = future.result()
             new_value = randint(1, 10000)
             new_value = randint(1, 10000)
-            await db.world.update_one({'_id': world['_id']}, {"$set": {self.RANDOM_NUMBER: new_value}})
 
 
+            updates.append(db.world.update_one({'_id': world['_id']}, {"$set": {self.RANDOM_NUMBER: new_value}}))
             worlds.append({self.ID: int(world['_id']),
             worlds.append({self.ID: int(world['_id']),
                     self.RANDOM_NUMBER: world[self.RANDOM_NUMBER]})
                     self.RANDOM_NUMBER: world[self.RANDOM_NUMBER]})
+        await asyncio.wait(updates)
         self.finish(json.dumps(worlds))
         self.finish(json.dumps(worlds))