すべてはここにある。もしくはAPIでとってくる。

2025年06月03日

住所から国土地理院の緯度経度取得APIを使って、テーブルへ格納するバッチ処理がようやく終了した。全国550万件のデータに対して、およそ1か月かかった。まあ、10万件単位で実行するバッチで、さらにチャンクで分割したうえで、1件1秒スリープをいれて、途中からは都道府県単位のオプションをつけての実行にして、おわっていたら、続きからコマンドをたたくということを日課というか、1日に何回かをやるという日々がおわった。

人間というものははじめると終わりを求め、終わりを迎えると、なぜか寂しい。だからといってこんなことを何のためにやっていたのかと言えば、理論値550万秒の処理は、いったいどれくらいでおわるのか試したかったのである。1日というのは60秒x60分x24時間であるので、86400秒。計算上は63.6574074日。あれ2か月かかるやん。

            usleep(100000); // 0.1秒スリープ(API負荷抑制)

おお、1秒ではなくて、0.1秒で実施していたのだ。6.4日で終わる処理を1か月かけてしまったのである。

その理由は、次の通り。

最初メモリ確保が適切でなかった。

これは、実行時にメモリサイズを指定することで改善された。

php -d memory_limit=1524M artisan corporates:geocode-gsi

そして、緯度経度が取得できずにセットできなかった対象を、毎回処理してエラーを出すという、愚かな仕組みになっていたので、毎回コマンド再実行時は同じエラーを出すための時間となっていた。

北海道からはじまり、まあ、東京あたりまでくるときには、いいかげん、この最初の繰り返し表示される緯度経度が取得できませんでしたという、人生のエンドロールのような繰り返し文にいやけがさして、そうだ!都道府県オプションつけて実行できるようにしたら、この無駄な時間がいらなくなる。

php -d memory_limit=1524M artisan corporates:geocode-gsi --prefecture=千葉県

オプションは大事だよ。

コマンドの作り方は、オプションの指定の仕方が重要。

センスがわかるだろ。

最新のお知らせ

thumb
2026年4月10日
【概念解説】マッチングアプリの魔法を解き明かす:一方向型マッチングの共通構造

1. はじめに:見かけは違えど、心臓は同じ 世の中には、新し...

No Image
2026年4月9日
心を揺さぶる名曲の正体:初心者のための作曲技法入門ガイド

1. はじめに:なぜ「あの曲」は心地よいのか? サザンオ...

thumb
2026年4月5日
見積もり:Laravel構造化見積もりエンジンの開発と要件

Estimates: Laravel Structured Estimating Engine Development...

thumb
2026年4月2日
MDXレンダリング最適化および高機能コンポーネント実装要件定義書

1. プロジェクトの背景と戦略的意義 モダンなWebフロントエ...

No Image
2026年4月2日
Next.js App Router × MDX 導入・完全ワークフロー

Next.js エバンジェリストの視点から、MDXをプロジェクトに...

thumb
2026年4月2日
【新常識】MarkdownとReactが融合する「MDX」の世界:記事の中でアプリが動く魔法

1. はじめに:なぜ今、MDXが必要なのか? プログラミン...

thumb
2026年4月1日
多拠点展開の「正解」がここにある。次世代ポータル基盤『Plus1 Community』から学ぶ5つの設計思想

1. イントロダクション:多拠点管理の「カオス」を解き明か...

thumb
2026年3月31日
アイプラスワンのホームページトップに、ECサイト基盤とコミュニケーションサイト基盤をのせたい

いいですね、その方向はかなり“刺さる”構成になります。今やる...

thumb
2026年3月30日
WindowsでのDocker開発を劇的に変える、5つの「戦略的」最適化術と真実

WindowsプラットフォームにおけるDocker開発の歴史は、仮想化技...

thumb
2026年3月29日
1つの方程式で、あらゆる「つながり」を。マッチング基盤設計に学ぶ、究極の再利用戦略

1. イントロダクション:マッチングサイト乱立時代の「車輪...