どちらも 指定したスケジュールでプログラムを実行する
という機能を備えていますが、その本質や如何に。
個人的主観を基幹に据えて解説していきます。
Windows のタスク
- Windows の内部メンテナンスが目的で装備されているイメージ。
- 指定した bat ファイルや exe ファイルを実行できます。
- タスクを起動する方法は、下記トリガーが発動するか、手動で実行した時。
- 定時
- ログオン時
- スタートアップ時
- アイドル時
- イベント時
- タスクの削除/変更時
- ユーザー セッションへの接続時
- ユーザー セッションからの切断時
- ワークステーション ロック時
- ワークステーション アンロック時
- API と使用方法の説明があります。
- API はありますが、自動化(追加・削除・変更)が主な用途であって、公開のためではなさそうです。
- 実行結果はエラーコードのみ。例:
前回の実行結果
にてこの操作を正しく終了しました。(0x0)
Jenkins
- 作業の自動化が目的で、その機能面において日々改善が図られているイメージ。
- プロジェクトの種類からして豊富。Java がベースになっていて、使用できるコマンドをプラグインで拡張が可能。
- ジョブを起動するには、下記ビルド・トリガーがあります。
- リモートからビルド
- ビルドのパラメータ化を使うと、パラメータを与えることができます。
- SCM をポーリング
- 他のプロジェクトの後にビルド
- 定期的に実行
- リモートからビルド
- API や使用方法の説明があります。
- web ベースの UI。未ログイン者に対しても、表示を許可する設定は可能。
- 実行結果はエラーコードや、コンソール出力をキャプチャ可能。
上記を踏まえて、個人的にはつぎのような使い分けをしています。
Windows のタスク
- バックアッププログラムの実行。毎日。特に Windows Server で
Jenkins
- プロジェクトのビルド
- オンデマンドな音声の文字起こし
- 業務上のバッチジョブの実行