LoginSignup
1
0

More than 3 years have passed since last update.

【ふくだ学習録】アプリ制作part14【41日目】

Posted at

ふくだ学習録とは?

ふくだが学習したことの備忘録。
目に見える形で残すことによってやる気を出す個人的な作戦です。
他人に見せるように書いているわけではないので、すごく読みにくいです。

読了した本

データベースエンジニア養成読本 [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)はデフォルトで下記の設定が書いてあった。

/etc/crontabs/root
# 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の機能とか設定するのまぁまぁ時間取られるけど、めちゃめちゃおもろい。
楽しみながらペース上げてこ。池田エライザと柔道したい!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0