我目前正在尝试开发一个严重依赖 heroku 工作人员(执行 NodeJS 脚本,在此处无法切换到 Ruby/Rails)处理长时间运行(1 - 168 小时)后台作业的应用程序。我的问题是某些工作可能会在 1 小时内完成,而其他工作可能需要 168 小时,而且我不想等到我所有的工人都完成后才开始缩减规模,因为 Heroku 会按每个工人的那段时间向我收费.
我对每天重新启动一次 dynos 没有任何问题,但我想知道是否有可能(以及如何)通过 Heroku API 或任何其他方式(可能从工作进程中)缩小特定的 Heroku 工作人员本身,尽管从内部终止进程似乎只会导致工人重新启动自己,而不是缩小自己)。
如果这是不可能的,那么我想知道是否有人知道如何捕获“缩小事件”(即是否有一些信号发送到要缩小的随机工作人员,如 SIGTERM 或 SIGKILL?)。
任何建议都值得赞赏。