-
Molk@Taoist
プログラミングはエラーの宝箱
2007年 03月 18日 (日) 19:01 | 編集
価格改定プログラムを作ろうとパソコンに向かって6日間。
Perl初心者にはやはり相当に高いハードルだった。

開発はWindowsXPにapache2.0.58とActivePerl5.8.8をインストールして実施している。
昨年、簡単な携帯チェッカーを作った事があるのだが、アルツハイマー気味の頭には何も残っていない。結局アマゾンECSのXMLの構造を把握するのにかなり苦労した。

Perlの関数はポケットリファレンスを手元において作っているのだが、それでも、エラーの続出。ほとんどの時間がエラーの原因探しに費やされた。}と;には何度も悩まされた。また、例えば$res=chop $data;で後から$dataを参照すると、$dataに入っていたデータの最後の数字が無くなる事も気づかず時間だけが過ぎていった。

最初は、携帯チェッカーを作った時のように1件ずつデータを取得していたが、それでは、出品数が6000ある場合6000回のリクエストを出す事になり、相当に時間がかかることが判明。1リクエストで10冊分のデータ取得できるプログラムに改造した。これが大きなつまずきの元だった。「ひっそり」さん「JUICE」さん見てたらアドバイスください(泣)。apacheのerror.logを見ると

Premature end of script headers: ←意味不明

出品データが500件程度だとうまくいくのだが、2000件以上のデータ処理をすると途中でストップしてしまう。特定のリクエストでストップするというわけでも無い。レンタルサーバーでは一定時間でストップする事は理解できるのだが、自分のパソコンでそれが起こるとは!apacheの設定にミスがあるのか、プログラムのミスなのか?その原因探しに丸2日かけたが、ついに断念。結局1リクエストで1冊分のデータを取る形に変更。

価格改定については、細かな条件で改定をしようと思って、条件分岐を色々と考えていたが、頭がこんがらかってきたので整理。基本となる条件分岐のみ組み込む事にした。それでも、市販の価格改定ソフトよりかなり細かな設定ができる。その設定を自由に変更できるところが自作の強みだ。

現在テスト中だが、おおよそ思った通りにデータが吐き出されてくる。もう少し大量にデータを処理させ、問題点を洗い出し手直ししなければとても使い物にならないが、とりあえずそこそこに動くものができた。

JUICEさんに教えてもらったAIMSを利用する全自動システムまでは程遠いが、Molk式半自動価格改定プログラムver0.1ベータ版の完成だ。

それはいいのだが、先週仕入れてきた本の出品ができていない。価格改定プログラムを作るのに時間を取られて、丸2週間価格改定すらできていないのだ。

当然のごとく販売数は30前後をうろうろしている。

これを本末転倒というのだろう。

しかし、プログラムがうまく動いたときの感動はなんともいえず、久しぶりに充実した苦悩の1週間だった。

4月中に完成すればいいのだが、どうなる事か・・・。
copyright (C) Molk@Taoist all rights reserved.
designed by polepole...