Avatar ·

Go में निर्धारित अंतराल पर दोहराए जाने वाले कार्य कैसे करें?

सभी को नमस्ते! मैं Go में नया हूँ और एक छोटी मॉनिटरिंग सेवा लिख रहा हूँ। मुझे चाहिए कि हर 5 सेकंड में प्रोग्राम रिमोट सर्वर की स्थिति जांचे और परिणाम लॉग में लिखे। मैंने अनंत लूप में `time.Sleep()` का उपयोग करने की कोशिश की, लेकिन यह अस्थायी समाधान जैसा लगता है और ऐसा लगता है कि यह पूरे प्रोग्राम को गलत तरीके से ब्लॉक कर रहा है। यहाँ मेरा वर्तमान कोड है:\n\n```go\npackage main\n\nimport (\n "fmt"\n "time"\n)\n\nfunc main() {\n for {\n fmt.Println("सर्वर जाँच रहा हूँ...")\n // यहाँ कुछ जाँच लॉजिक\n time.Sleep(5 * time.Second)\n }\n}\n```\n\nसमस्या यह है कि अगर मैं इस लूप को रोकना चाहूँ (उदाहरण के लिए, प्रोग्राम समाप्ति सिग्नल पर), तो `Sleep` के समाप्त होने का इंतजार करना होगा। इसके अलावा, मैंने सुना है कि Go में goroutines और channels हैं, लेकिन मैं समझ नहीं पा रहा हूँ कि इस कार्य के लिए उनका उपयोग कैसे करूँ।