Drupal で郵便番号データを自動更新するための設定

10数万件ある郵便番号CSVデータを定期的に取得して、Drupalにインポートするための設定。

月末にデータ更新されているので、毎月5日にCSVを取得するようにOSのcronを設定し、月次のDrupal cronで1時間おきに500件ずつインポートして約10日で完了。

コンテンツタイプは作成済みの前提で、以下に設定を記述する。

Feeds設定

admin/structure/feeds/postcodejpcsv/settings
Basic settings ->
Periodic import: Every 4 weeks
tick "Process in background"

Drupal cron設定

admin/config/system/cron
Run cron every -> 1 hour

Drupal 設定ファイル

$ sudo vim sites/default/settings.php
# 1回の処理件数を変更 指定なしは50件
# 1hで500件の場合、100000件を処理するには200h=8days
$conf['feeds_process_limit'] = 500;

OS cron設定

$ sudo crontab -e

# download and unzip zipcode data from japanpost
# at 15:00 5th of every month
# No Headers, File encoding: SJIS
00 15 05 * * curl -o /tmp/ken_all.zip -C - http://www.post.japanpost.jp/zipcode/dl/kogaki/zip/ken_all.zip && unzip -o -d /var/www/html/octaviadata.com/data/tables/ /tmp/ken_all.zip