平日だけcron動かしたときにjpholidaypという便利なものがあるそうで。
使い方や説明については以下がわかりやすかったので参考に。
cronで祝日判定しようと思ったら,emasaka/jpholidaypが素晴らしかった
ただ、jpholidaypは実行時に外のカレンダーを見に行ってて、
諸事情でproxy越しじゃないと外に出られないのでちょっとコードいじってみた。
49行目と50行目の間に4行ほど足してみる。
else:
# ここから
proxy = {"http":"hoge-proxy:80"}
proxy_handler = urllib2.ProxyHandler(proxy)
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)
# ここまで
res = urllib2.urlopen(self.URL)
dat = yaml.load(res)
cache.set({"holiday_jp": dat})
self.holiday_jp = dat
参考:
プロキシ環境下でpythonのurllib2で作ったクローラをcronで定期的に実行するときのメモ - moguranosenshi
これでcronにそのまま、
0 09 * * 1-5 /home/hoge/jpholidayp || /home/hoge/batch
とかやると月曜から金曜かつ祝日を除いた日に実行できるので、
めでたしめでたし。
(しかし会社とか学校とか組織固有の休みが有る場合には当然知るすべはなく、
その組織用の祝日apiとか提供して欲しくなるなとしみじみ)