যারা debug=True
বিকল্প পছন্দ করেন এবং টর্নেডো-মাল্টিপ্রসেস ব্যবহার করেন তাদের জন্য নিম্নলিখিত ত্রুটিটি উত্থাপিত হবে:
Traceback (most recent call last):
File "./main.py", line 54, in <module>
server.start(0) # forks one process per cpu
File "/Users/me/Library/Python/2.7/lib/python/site-packages/tornado/tcpserver.py", line 221, in start
process.fork_processes(num_processes)
File "/Users/me/Library/Python/2.7/lib/python/site-packages/tornado/process.py", line 130, in fork_processes
raise RuntimeError("Cannot run in multiple processes: IOLoop instance "
RuntimeError: Cannot run in multiple processes: IOLoop instance has already been initialized. You cannot call IOLoop.instance() before calling start_processes()
এটি কারণ debug=True
লোড IOLoop
এবং এটি দুটিবার লোড করা যায় না।
ডকুমেন্টেশন অনুযায়ী
ডিবাগ সেট করা = সত্যটি অটোরোড = ট্রু, সংকলিত_বিহীন_ক্যাচি = মিথ্যা, স্ট্যাটিক_হ্যাশ_ক্যাচি = মিথ্যা, পরিবেশন_ট্রেসব্যাক = সত্যের সমান।
সুতরাং debug=True
টর্নেডো ব্যবহার করার সময় আরও একটি পতাকা সেট করে (সুবিধার্থে): autoreload=True
যা পরিবর্তনের জন্য "দেখুন" এবং সার্ভারটি পুনরায় লোড করে।
autoreload
বিকল্প এক যে যখন বহু-প্রক্রিয়া ব্যবহার করে চালু করা যেতে পারে। সুতরাং আপনার এটির মতো কনফিগার করতে হবে:
if __name__ == "__main__":
application = tornado.web.Application([
(r"/", MainHandler)
], debug=True, autoreload=False)
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()