jobやバッチとかを何となく理解してみる
「job」や「バッチ」って、なんとなく似ているような気もするし、同じものを指しているようにも感じたことがあります。
実際に業務で「○○を定期的に削除する仕組みを作って」と指示されたとき、
まったく何もわからない状態から、そもそも「job」や「バッチ」って何?というところから調べ始めました。
同じように困っている方のために、私なりの理解をここに書き記しておこうと思います。
そもそも何となく同じぽく感じる単語
・job
・cron
・バッチ
・シェルスクリプト
私の最初のイメージでは、このあたりの言葉がだいたい同じようなものをさしているような印象を感じます。
最初のイメージ
・job:なんか定期的に動くやつ(何かをする処理を指すみたいな)
・cron:crontabに書いてあるように、時間指定をして定期的に動かす仕組み(設定)
・バッチ/スクリプト:やることがつらつらかかれているファイル
というような、かなり曖昧なイメージからスタートしました。
イラストで考えてみる
「job」は、ある命令の中のひとつの動き。
たとえば「ファイルを探して削除する」という命令があったとき、
「ファイルを探す」というjobと、「削除する」というjobがそれぞれ動いているようなイメージです。
そんなjobは、cronやバッチ、シェルスクリプトの中に記述されていて、
特にバッチやシェルスクリプトには、複数のjobがひとつのファイルに並んで書かれている感じになります。
もちろん、jobはcronの設定として登録することもできます。
ただ、cronはもっと広い概念で、jobやバッチ、シェルスクリプトを定期的に動かす仕組みとして使われます。
おわりに
厳密に言えば、上記の理解は少し違っている部分もあるかもしれません。
でも、こうして「なんとなくそれっぽく」自分の中でかみ砕いていくことで、
その後の深い理解につながる土台ができるんじゃないかと思っています。
もっとしっかり理解できたら、また改めて「なんとなく」書いてみようと思います。


