"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > टाइमआउट के साथ पायथन फ़ंक्शन निष्पादन को कैसे बाधित करें?

टाइमआउट के साथ पायथन फ़ंक्शन निष्पादन को कैसे बाधित करें?

2025-01-16 को प्रकाशित
ब्राउज़ करें:549

How to Interrupt a Python Function Execution with a Timeout?

पायथन में टाइमआउट के साथ एक फ़ंक्शन को बाधित करना

ऐसे फ़ंक्शन को कॉल करना जो अनिश्चित काल के लिए रुक सकता है, स्क्रिप्ट को आगे निष्पादित होने से रोकता है, यह आवश्यक हो जाता है कि एक टाइमआउट तंत्र लागू करें। पायथन का signal पैकेज इस समस्या का समाधान प्रदान करता है।

signal पैकेज, जो मुख्य रूप से UNIX सिस्टम में उपयोग किया जाता है, आपको एक विशिष्ट फ़ंक्शन के लिए टाइमआउट सेट करने की अनुमति देता है। यदि फ़ंक्शन निर्दिष्ट टाइमआउट से अधिक हो जाता है, तो निष्पादन को बाधित करने के लिए एक सिग्नल उठाया जाता है।

उदाहरण:

एक फ़ंक्शन लूप_फॉरएवर() पर विचार करें जो अनिश्चित काल तक चल सकता है। हमें इस फ़ंक्शन को कॉल करने की आवश्यकता है लेकिन 5 सेकंड का टाइमआउट सेट करें। यदि फ़ंक्शन में 5 सेकंड से अधिक समय लगता है, तो हम इसके निष्पादन को रद्द करना चाहते हैं।

import signal

# Register a handler for the timeout
def handler(signum, frame):
    print("Timeout! Cancelling function execution.")
    raise Exception("Timeout exceeded!")

# Register the signal function handler
signal.signal(signal.SIGALRM, handler)

# Define a timeout of 5 seconds
signal.alarm(5)

try:
    loop_forever()
except Exception as e:
    print(str(e))
    
# Cancel the timer if the function finishes before timeout
signal.alarm(0)

इस उदाहरण में, 5 सेकंड के बाद, एक अपवाद उठाते हुए हैंडलर फ़ंक्शन को कॉल किया जाता है। यह अपवाद मूल कोड में पकड़ा गया है, जो फिर टाइमर को रद्द कर देता है और लूप_फॉरएवर() फ़ंक्शन के निष्पादन को समाप्त कर देता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3