টর্নেডোতে ডিবাগ মোড কীভাবে সেট করবেন?


13

আমি গুগল করেছিলাম এবং একটি ইঙ্গিত পেয়েছি যে টর্নেডোতে আমার ডিবাগ মোড সেট করা উচিত যাতে এটি আপডেটে স্বয়ংক্রিয়ভাবে ফাইলগুলি পুনরায় লোড করতে পারে। তবে sertোকানোর জন্য আমি কোনও সঠিক স্ট্রিং পাইনি। আমি এর অনুরূপ বিভিন্ন সংমিশ্রণ চেষ্টা করেছি application.settings = {"Debug": True}কিন্তু এটি কোনও লাভ করে না।


আমি মনে করি এটি
deb

উত্তর:


12

টর্নেডো সাইট থেকে একটি টুইটের উদাহরণ এখানে:

if __name__ == "__main__":
    application = tornado.web.Application([
        (r"/", MainHandler) 
    ], debug=True)
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

2
"ডিবাগ = ট্রু" এটির কাজ করার জন্য হ্যান্ডলারের তালিকার বাইরে থাকতে হবে --- এর মতো: "...], ডিবাগ = ট্রু)"
হেম ম

ভাল ধরা, আমি এটি পরীক্ষা না করে লিখেছিলাম। সেই অনুসারে আমার উত্তর আপডেট করুন।
জন হাদাদাদ

0

যারা 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()
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.