为了账号安全,请及时绑定邮箱和手机立即绑定

将 Heroku Scheduler 插件与 Golang 应用程序一起使用

将 Heroku Scheduler 插件与 Golang 应用程序一起使用

Go
互换的青春 2022-03-03 19:49:31
我不知道如何在 Go 中使用 Heroku Scheduler 插件。我想定期运行一个单独的 Go 文件,但我可以找到实现此目的的命令。从 Heroku 的文档 ( https://devcenter.heroku.com/articles/scheduler ),如果应用程序不是 Rails 应用程序,我应该使用 ruby 脚本。但我不知道如何从那里运行 Go 文件。
查看完整描述

3 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

典型的模式是执行以下操作:


.

└── cmd

    ├── processX

    │   └── main.go

    └── web

        └── main.go

并且您将heroku.install设置为["./cmd/..."],Heroku 编译并将这两个命令安装到 bin 中,因此您得到 abin/web和 a bin/processX(processX只是一个占位符,无论包含主包的目录名称是生成的可执行文件的名称)。在上述情况下,您Procfile会说web: web,第一个web是进程类型,第二个是可执行文件的名称。你会告诉调度程序运行的工作是processX.


明确区分职责


查看完整回答
反对 回复 2022-03-03
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

Heroku 调度程序基本上会运行任何终端命令。因此,如果您将脚本编译成一个名为 的可执行文件myscript,例如,您可以简单地输入:

myscript

在调度程序中,它将执行该命令,从而运行您的脚本 =) 不需要 ruby。


查看完整回答
反对 回复 2022-03-03
?
潇湘沐

TA贡献1816条经验 获得超6个赞

我最终分叉了main我的网络测功机使用的相同功能:


func main () {

    if len(os.Args) >= 2 && os.Args[1] == "my_job_param" {

       // Execute job.

    } else {

       // Set up my web server with port, router, etc.

    }

}

然后,在调度程序附加组件中,我只需调用:my-app-name "my_job_param". 这很 hacky,但我想使用 Scheduler 插件找到解决方案。


查看完整回答
反对 回复 2022-03-03
  • 3 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信