0
点赞
收藏
分享

微信扫一扫

Web3.0与AI的交融:开启智能互联网新时代

12a597c01003 2024-04-17 阅读 10
golang
package main

import (
"fmt"
"net/http"
"time"
)

func main() {
// 创建一个定时器,每隔1秒钟执行一次
ticker := time.NewTicker(1 * time.Second)
done := make(chan bool)
//设置3s超时,避免请求时间过长
client := http.Client{
Timeout: 3 * time.Second,
}
go func() {
for {
select {
case <-done:
// 定时任务结束
return
case <-ticker.C:
//请求url,www.baidu.com
resp, _ := client.Get("https://www.baidu.com")
//关闭请求
defer resp.Body.Close()
//打印状态码
fmt.Println(resp.StatusCode)
fmt.Println("定时任务执行中...")
}
}
}()

//select {} 语句会阻塞主线程,等待一个永远不会到来的信号。程序会一直运行,直到手动停止
select {}

// 等待5秒钟后停止定时任务
time.Sleep(5 * time.Second)
// 停止定时器
ticker.Stop()
// 发送停止信号
done <- true

fmt.Println("定时任务已停止")
}

想5秒内结束就注释掉select{}

在linux上后台执行的话,可以这样

nohup go run channel.go &
举报

相关推荐

0 条评论