分享
  1. 首页
  2. 文章

go 开发 寻求大神帮助

lemonsds · · 1345 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

go怎么实现延迟任务执行 main函数执行后 直接退出了 在main函数里面是有select{}可以实现执行完后在退出 ,但是实际项目应用中肯定不能这样做,例如执行一个每20秒执行一个任务 应该怎么做

func main() {
 //go timer1()
 //timer2()
 for i :=1; i <10 ; i++ {
 task :=&Task{i+1,"a",""}
 task.Start()
 }
}
type Task struct {
 delay int
 key string
 data string
}
func NewTask(delay int,key ,data string) *Task {
 task :=&Task{
 delay:delay,
 key:key,
 data:data,
 }
 return task
}
func (task * Task) Start() {
 go task.run()
}
func (task * Task) run() {
 fmt.Println("开始执行")
 second :=time.Duration(task.delay)
 timer :=time.NewTicker(second * time.Second)
 //val:=make(chan string)
 for {
 select {
 case <-timer.C:
 /*fmt.Println("减去之前:"+string(task.delay))
 if(task.delay >0){
 task.delay--
 fmt.Println(task.delay)
 }
 if(task.delay == 0){
 fmt.Println("时间到执行回调")
 Httppost(task.data)
 timer.Stop()
 }*/
 fmt.Println("时间到执行回调")
 Httppost(task.data)
 timer.Stop()
 }
 }
}

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
1345 次点击
2 回复 | 直到 2018年08月03日 10:03:18
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏