答案 0 :(得分:0)
您可以使用select * from my_table
inner join (
select id, max(ref_value) max_value
from my_table
group by id
) t on t.id = my_table_id, t.max_vale = my_table_value
装饰器来解决这个问题,但我发现这可能导致额外的工作使得包装器函数获得您想要的执行顺序,所以这里有一个快速修复,使用@runs_once
值来评估您要部署到哪个服务器并相应地调整脚本:
env.host_string
此输出中的结果似乎达到了您想要的效果:
@hosts('host1', 'host2')
@task
def checkout(branch='master'):
execute(_test_task_w_arg, 'all-servers')
execute(_test_task_w_arg, 'arg1' if env.host_string == 'host1' else 'arg2')
def _test_task_w_arg(arg1):
local("touch test-file-" + arg1)