ふくだ学習録とは?
ふくだが学習したことの備忘録。
目に見える形で残すことによってやる気を出す個人的な作戦です。
他人に見せるように書いているわけではないので、すごく読みにくいです。
読了した本
データベースエンジニア養成読本 [DBを自由自在に活用するための知識とノウハウ満載!]
ゼロから作るDeepLearning
PHPフレームワーク CakePHP 3入門
SQLアンチパターン
Docker入門
PHPフレームワーク Laravel入門
今読んでいる本
アプリ制作
定期ジョブの作成
対象サイトに対して、定期的にスクレイピングを実行したかったので実装していく。
今回の環境(pythonでscrapy)で実装するとすると、下記の2パターンでできそうだった。
①scheduleライブラリをimportし、pyrhonプログラムとして、定期的にジョブを実行する。
②cronに定期ジョブとして登録しておいて、、pythonコマンドをLinux側から呼び出す。
今回は②を採用して実装することにする。理由としては下記の2つ。
・cronに登録する方法であれば、言語や環境が変わっても使用できるので、汎用性が高そう。(Linuxベースなら基本OKの認識)
プロセスを常に起動しておく(pythonを常に実行させておく)のはメモリ的によくない(はず)。
・scrapyに用意されている「scrapy crawl 〇〇」というコマンドで、スクレイピング実行したかったから。(というかソースコード読み解いてパッチ当てるのがめんどくさかった)
まぁcronいじれるようになったほうが良さそうなので、とりあえずは②で進めていく。
参考にするのは下記記事
Pythonでプロセスを監視して終了したらgmailを使ってメール送信する(Python3版)
現在のcronの確認
まずは、今のcron設定の確認をする。
alpineLinuxではcron(crontab)はデフォルトで下記の設定が書いてあった。
# do daily/weekly/monthly maintenance
# min hour day month weekday command
*/15 * * * * run-parts /etc/periodic/15min
0 * * * * run-parts /etc/periodic/hourly
0 2 * * * run-parts /etc/periodic/daily
0 3 * * 6 run-parts /etc/periodic/weekly
0 5 1 * * run-parts /etc/periodic/monthly
cron設定の変更
下記の記事を参考に設定していく。
docker alpineでcronスクリプトを実行する
Docker + Cron環境を実現する3つの方法
Supervisorで簡単にデーモン化
今日の一言
Linuxの機能とか設定するのまぁまぁ時間取られるけど、めちゃめちゃおもろい。
楽しみながらペース上げてこ。池田エライザと柔道したい!