タスクスケジューラーが勝手に無効になるのでJenkinsに乗り換えた話

タスクスケジューラーを使って「定期的にバッチファイルを走らす」というのをやっていたのですが

なぜか設定したタスクがいつの間にか「無効」になってしまう😣

何度も設定を見直したり、1から作り直したりしてもダメ。

▲なんでなん・・・?😫

 

もう原因突き止めるの面倒くせえわ!!😇😇😇

というわけで、タスクスケジューラーを捨てて「Jenkins」に乗り換えることにしました。

Jenkinsとは?

Jenkinsは「もし◯◯という条件に引っかかったら△△を実行する」ができるツールです。

一般的にCI/CDを行うために使われることが多いらしいのですが

  • Linuxで言うところのcron
  • Windowsで言うところのタスクスケジューラー

の代わりとなるような機能も内蔵されてます。

なのでタスクスケジューラーでできることは大体できます。

任せるぞい

というわけで今までは

  1. Node.jsで作ったスクレイピング用のプログラムを走らせて、HTMLファイルを生成する
  2. HTMLファイルをfirebaseにデプロイする

という流れをタスクスケジューラーに任せていたのですが、これを以下のようにしてJenkinsに任せることにしました。

jenkins

▲Windowsバッチとして実行させるようにする

ちなみにプログラムとデプロイ先は以下のとおりです。

 

 

結果、タスクスケジューラーのように「無効」になって止まることがなくなりました!😄🎉🎉🎉

しかもタスクスケジューラーよりも利便性も向上しました。

  • 実行結果のログがすべて残る
  • UIが見やすい
  • cronの書き方がそのまま使えるので、Linuxの知識がある人からすると分かりやすい

▲こんな感じで、実行結果のログがすべて記録されるので、成功したか失敗したかも一目瞭然だし、なぜ失敗したかまで分かる

 

ちなみに使ってみてハマったポイントとしては

  • Jenkinsはデフォルトだとシステムユーザー権限で実行されるので、firebaseでデプロイする場合は、普段使っているユーザー権限でJenkinsを立ち上げないといけない

    ▲この画面でJenkinsを右クリック→プロパティ

    ▲ログオンタブでアカウントを設定してから再起動

です。

 

 

 

おわり

CI/CD
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。WEBエンジニア。

技術スタック:TypeScript/Next.js/Express/Docker/AWS

フォローする
フォローする

コメント

タイトルとURLをコピーしました