When running the code I get an error of
ERROR:tornado.application:Future exception was never retrieved: Traceback (most recent call last): File "C:\Users\Ben\AppData\Local\Programs\Python\Python36\lib\site-packages\tornado\gen.py", line 1069, in run yielded = self.gen.send(value) File "C:\Users\Ben\Documents\GitHub\app-development\server\server.py", line 20, in serve self.write(r) File "C:\Users\Ben\AppData\Local\Programs\Python\Python36\lib\site-packages\tornado\web.py", line 708, in write raise RuntimeError("Cannot write() after finish()") RuntimeError: Cannot write() after finish()
Why is this happening? I referenced this question (second answer) I believe I am using the yield statement correctly.
class MainHandler(tornado.web.RequestHandler): executor = ThreadPoolExecutor(max_workers=64) def get(self): task = self.get_argument('task') self.serve(task) @tornado.gen.coroutine def serve(self, task): method = getattr(self, task) r = yield method() self.write(r) @run_on_executor def announcements(self): time.sleep(5) print("Done") with open('announcements.json') as announce_data: data = json.load(announce_data) print(data) return data