これで何ができるか
サーバーを1台も借りずに、毎日決まった時刻に処理を走らせられます。
- 毎朝7時にデータを取得して更新する
- 毎晩、動画やニュースを要約させる
- 毎週月曜にレポートをメールで送る
必要なのはGitHubアカウントだけです。VPSもレンタルサーバーもクレジットカードも要りません。
ただし、「毎朝7時に動かして」とだけ頼むと、たいてい思ったとおりに動きません。時刻がずれる、走らない、手動で試せない。この記事は、そうならないために最初に付けておく注文をまとめたものです。
十数本の定時実行を毎日動かしていて分かった、言っておくべきことだけを載せます。
前提
| かかる時間 | 30分 |
| 費用 | 無料。公開リポジトリなら実行時間は無制限、非公開でも月2000分まで無料 |
| 必要なもの | GitHubアカウント / ファイルを作れるAI |
| プログラミング | 不要 |
AIへの頼み方
1. 最初の1回で、注文を全部付ける
いきなり結論です。この指示文をコピーして、○○の部分だけ書き換えてください。
「時差を間違えないでください」を明示するのが効きます。GitHub Actions の時刻指定は必ずUTCで、日本時間から9時間引きます。引くと前日になることが多く、ここは高い確率で間違えます。
2. キリのいい時刻を避けさせる
上の指示に入っていますが、単独で頼むならこうです。
3. 「絶対に動いてほしい」ものは多重化させる
遅れるだけならまだしも、動かないことがあります。重要な処理なら、こう頼んでください。
後半の「2回目以降が実行されても何も壊れないように」が本体です。これが無いと、4回動いて4回投稿する、のような事故になります。
定時実行を作るときは、時刻を守らせようとするより、何回走っても大丈夫にするほうが圧倒的に楽です。
4. 手動で試せるようにさせる
これが無いと、動作確認も、失敗したときの復旧も、全部「次の自動実行を待つ」になります。スケジュールが初めて動くのを待たないでください。書き間違いがあった場合、翌朝まで気づけません。
5. 動かす前に確認させる
1番で時差の間違いが見つかります。「日本時間の何時に動きますか」と聞き返すだけで、UTCの計算ミスをその場で捕まえられます。
うまくいかないときの言い直し方
動くはずの時刻に動かなかった
3つに切り分けさせるのがコツです。「動かなかった」とだけ言うと、AIは原因を推測で語り始めます。実行履歴という事実を見せてから話させてください。
なお、数分〜十数分の遅れは正常です。GitHub のスケジュールは混雑状況次第で、正確な時刻の保証はありません。
エラーは出ていないのに、結果が保存されない
定時実行が結果をリポジトリに書き戻す場合、設定ファイル側の指定とリポジトリの画面設定の両方が必要です。片方だけだと、処理は成功して最後の保存だけ失敗します。
しばらくしたら、自動実行が勝手に止まった
心当たりを添えて聞くと、確認が早いです。「なぜか止まった」だけだと、AIは可能性を延々と並べます。
これは、何も書き込まないタイプの自動化(メールを送るだけなど)で起きます。
同じ処理が2回走っている
「覚えのない更新」「上書き合戦」の正体はたいていこれです。両方走らせる必然性は普通ありません。
頼んでいない設定まで変えられた
応用・次の一手
まず1つ作って、しばらく放置してみてください。動き続けることが分かると、任せられる仕事の見え方が変わります。
そのうえで、必ず死活監視を付けてください。
自動化で一番怖いのは、エラーで止まることではなく、エラーを出さずに古い結果を出し続けることです。詳しくは サービスが静かに壊れたのを見つけさせる に書きました。
具体的な題材が欲しければ、AIの最新情報を自動で集める がそのまま動く実例です。ここで書いた注文をすべて使っています。