yochiyochirb/kajaeru

bundle update 実行を毎週に変えたいなら変える方法を検討したい

Closed this issue · 6 comments

#169 (comment)

これも API 呼び出し側の話なので、この PR の内容自体に直接関係することではないですが、bundle update の頻度が高いこと自体はいいことだと思うけど、上記のように運用コスト考えると結構うざいかも、とは思います。

Heroku Scheduler でがんばる (API リクエストをアプリのタスクでラップして Time.now.wday をチェックして実行を制御するとか) のも1つの案ですが、自分がやるなら AWS Lambda をスケジューリングして使うと思います。たぶん無料枠の範囲で収まるんじゃないかと思いますし。

AWS Lambda をスケジューリングして使うと思います。

これのやりかたをおそわりたい

ざっくり手順をキャプチャしました。

1


2


3


4

'use strict';
let exec = require('child_process').exec;

let command = "curl -H 'Content-Type: application/json' -H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxx' -X POST -d '{\"applicationId\": \"xxxxxxxxxxxxxx\", \"branch\":\"master\", \"message\":\"Trigger build Kajaeru with BUNDLE_UPDATE\", \"envVars\":[{\"key\":\"BUNDLE_UPDATE\",\"value\":\"true\"}]}' https://app.wercker.com/api/v3/builds";

exports.handler = (event, context, callback) => {

    const child = exec(command, (error) => {
        // Resolve with result of process
        callback(error, 'Process complete!');
    });

    // Log process stdout and stderr
    child.stdout.on('data', console.log);
    child.stderr.on('data', console.error);
};

5


6


7


8


9

うおーありがとうございます😂
あした(今日?)やってみます!

設定しました。画面の説明どおりにやったので土曜日の 14:00 に来るのかな。来なかったら reopen します。

あ、だめだ。Heroku の既存のやつを止めなきゃ。

Heroku Scheduler の job を remove しました。Heroku アプリ自体はいちおう残しておこうかなと思います。