我在EC2上创建了一个自动缩放组,它工作得很好.服务器根据负载向上和向下扩展.我想在管理方面获得更多信息,并且想知道是否有办法让自动缩放组动态地将名称添加到它启动的实例中.我指的是使用key = Name和value = autogeneratedid添加标签.
例如,如果我有一个名为test-group的自动缩放组,则服务器将使用以下名称启动:
test-group-1
test-group-2
test-group-3
...
Run Code Online (Sandbox Code Playgroud)
我想在EC2管理控制台中找到它们进行枚举,但是现在它们只是显示为"空"名称(Tag key = Name未在实例上明确设置).
有任何想法吗?
我想知道在新代码推送后优雅地重启delayed_job消费者的最佳方法是什么?我正在使用capistrano推送代码,我知道有重启的命令,但是如果当前正在运行的作业,该命令要么挂起(我的部署需要永久),要么强行退出当前正在运行的作业,我会丢失数据.
理想情况下,我希望我的部署发生如下:
cap deploy并将第2版代码推送到新服务器我试图通过检查代码的当前版本来插入一些代码以在作业运行之前重新启动,但每次我这样做时,它就会死掉并且实际上不会重新启动任何东西.示例代码如下:
def before(job)
# check to make sure that the version of code here is the right version of code
live_git_hash = LIVE_REVISION
local_git_hash = LOCAL_REVISION
if live_git_hash != local_git_hash
# get environment to reload in
environment = Rails.env # production, development, staging
# restart the delayed job system
%x("export RAILS_ENV=#{environment} && ./script/delayed_job restart")
end
end
Run Code Online (Sandbox Code Playgroud)
它检测到它很好但它在shell调用时死亡.有任何想法吗?
谢谢!