मुझे लगता है कि आपका विचार बिल्कुल वही है जो आप चाहते हैं। उदाहरण के लिए:
import time
def do_something():
with open("/tmp/current_time.txt", "w") as f:
f.write("The time is now " + time.ctime())
def run():
while True:
time.sleep(60)
do_something()
if __name__ == "__main__":
run()
time.sleep(60)
करने के लिए कॉल 60 सेकंड के लिए सोने के लिए अपने कार्यक्रम डाल देंगे। जब वह समय बढ़ता है, तो ओएस आपके प्रोग्राम को जगाएगा और do_something()
फ़ंक्शन चलाएगा, फिर उसे वापस सोएगा। जबकि आपका कार्यक्रम सो रहा है, यह कुछ भी कुशलतापूर्वक नहीं कर रहा है। पृष्ठभूमि सेवाओं को लिखने के लिए यह एक सामान्य पैटर्न है।
वास्तव में कमांड लाइन से इस चलाने के लिए आपको & उपयोग कर सकते हैं:
$ python background_test.py &
जब ऐसा कर रही है, स्क्रिप्ट से किसी भी उत्पादन एक आप से यह शुरू कर दिया के रूप में एक ही टर्मिनल के लिए जाना जाएगा। आप उत्पादन अनुप्रेषित इस से बचने के लिए कर सकते हैं:
$ python background_test.py >stdout.txt 2>stderr.txt &
स्रोत
2011-01-09 03:31:42
यह निर्भर करता है कि आप क्या चाहते हैं। यदि आप हर बार दोहराने के लिए एक कार्य निर्धारित करना चाहते हैं, तो क्रॉन पर एक नज़र डालें। – Falmarri