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
我运行两次执行以下命令来启动我的两个一次性测功机
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