読者です 読者をやめる 読者になる 読者になる

$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

Cinnamonにmax_concurrency設定をつけました

perl tech

並列化に伴い、タスクごとの最大並列数を設定できるようにしました。

以下のように設定すると、updateは全hosts並列で動き、restartは1並列、server:setupは最大2並列で動くようになります。

use Cinnamon::DSL;

set max_concurrency => {
    restart        => 1,
    'server:setup' => 2,
};

role production  => sub {
    my $res   = LWP::UserAgent->get('http://servers.example.com/api/hosts');
    my $hosts = decode_json $res->content;
       $hosts;
}, {
    branch    => "master",
};

task update => sub {
    my ($host, @args) = @_;
    # ...
};
task restart => sub {
    my ($host, @args) = @_;
    # ...
};

task server => {
    setup => sub {
        my ($host, @args) = @_;
        # ...
    },
};

もうちょっとインターフェースが変わるかも知れないのでdeveloper releaseです。cpanm --dev Cinnamonでご利用ください。