Heroku:停止所有没有测功机名称的一次性测功机

Heroku: stop all one-off dynos without dyno name

我运行两次执行以下命令来启动我的两个一次性测功机

heroku run:detached python main.py

然后使用

停止它
heroku ps:stop <dyno-name>

但是,我希望在事先不知道测功机名称的情况下停止所有测功机,因为我正在尝试使用 crontab 自动打开和关闭我的测功机。

我写了一个 python 脚本来实现相同的目的,虽然没有优化但可以完成工作。

import os

path = 'cd <path-to-project>'

def stop():
    online_ps = os.popen(path + ' && heroku ps').read()
    for ps in online_ps.split():
        if(ps.startswith('run')): # process name example run.1234
            os.system(path + ' && heroku ps:stop ' + ps)

def start():
    os.system(path + ' && heroku run:detached python main.py <arg1>') # dyno 1
    os.system(path + ' && heroku run:detached python main.py <arg2>') # dyno 2

stop()
start()

注:

  • 注意命令中的空格
  • 此代码假设每个进程名称都以 run 开头,例如 run.1234