Como executar tarefas repetitivas com um intervalo definido em Go?
Olá a todos! Sou novo em Go e estou escrevendo um pequeno serviço de monitoramento. Preciso que a cada 5 segundos o programa verifique o status de um servidor remoto e registre o resultado no log. Tentei usar `time.Sleep()` em um loop infinito, mas parece uma gambiarra e, aparentemente, bloqueia todo o programa de forma incorreta. Aqui está meu código atual:\n\n```go\npackage main\n\nimport (\n "fmt"\n "time"\n)\n\nfunc main() {\n for {\n fmt.Println("Verificando servidor...")\n // alguma lógica de verificação aqui\n time.Sleep(5 * time.Second)\n }\n}\n```\n\nO problema é que se eu quiser parar este loop (por exemplo, por um sinal de encerramento do programa), terei que esperar o `Sleep` terminar. Além disso, ouvi dizer que Go tem goroutines e channels, mas não entendo como aplicá-los para esta tarefa.