Is there an equivalent command in tornado for delay function without affecting the main process to sleep (thus the callbacks would execute even when the main thread is dealying a new function call)
Try this:
import time
from tornado.ioloop import IOLoop
from tornado.web import RequestHandler, asynchronous
from tornado import gen
class MyHandler(RequestHandler):
@asynchronous
@gen.engine
def get(self):
self.write("sleeping .... ")
self.flush()
# Do nothing for 5 sec
yield gen.Task(IOLoop.instance().add_timeout, time.time() + 5)
self.write("I'm awake!")
self.finish()
Taken from here.
Note that since 4.1 they've added a gen.sleep(delay)
method.
so
yield gen.Task(IOLoop.instance().add_timeout, time.time() + 5)
would just become
yield gen.sleep(5)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With