GO项目中定时任务部署如何处理?

对Go项目的定时任务疑问

比如在Laravel中,我可以开发API, 我也可以定义了很多定时任务。我部署到服务器一个目录,然后我只要在服务器配合crontab指向该目录的命令就可以执行定时任务。Nginx指向该目录就可以对外停供web服务。

那么在Go中,比如我这个项目同时写了Api,还有一些定时任务。那我是要弄两个main文件来打包吗?一个部署web服务,一个部署定时任务?

讨论数量: 4

看项目设计。可以放在一起

1年前 评论
  1. 可以一个包根据 flag 区分,我们之前使用的是这个库 cli.urfave.org/v2/examples/flags/,比如 -api 是接口,-cron 是任务,配合nginx、crontab各自跑
  2. 当然也可以打两个包,简单明了
  3. 可以写到一个项目里,使用github.com/robfig/cron 库,不用系统的crontab,跟着api一起跑
1年前 评论
newbing

可以试一试我写的这个 分享创造:国庆期间开发了一个类似Laravel Task Scheduling的库,支持所有... ,就是面对这个问题的时候想到的。搭配Cobra 生成子命令就好了。

1年前 评论

构建一个 main 就可以,项目中写 web server 和 脚本,不加入调度代码,调度交给 crontab 或 调度中心来做。这样,web server 和 脚本部署到不同机器,或者在一个机器都可以。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!