んーやっぱ HTTP::Body のバグだな。。
$self->add したときに $self->{buffer} に append してるのに、File::Temp には毎回全部書き込んじゃってるという。
C::P::AtomPP 0.05_01
5.49世代からずっと $c->req->body
の調子がおかしいわけですよ。
でかい Content のときなんか変な値が入ってる。
5.57 時点でもだめだから気づいてねーんだろな。おうのめんでー。HTTP::Body のバグな気がするけど。
とりあえず prepare_body_chunk
を上書きして、$c->req->body
とは別に HTTP::Body つかわずに値を格納しておいてそれを使うようにしたVerを仮リリース。
naoyaのはてなダイアリー - Catalyst::Engine::HTTP::Resterter における自動再起動サーバーの実装
こういうの、途中経過をウォッチするのも楽しい。この自動再起動サーバーの実装のときは、File::Find に文句言ったり、vim でタイプするごとに一時ファイル(?)の mtime を更新する(?)のがうんこだけど、それに対応するためにディレクトリの mtime を見るようにしたりとか。
また、せばすちゃんがはっきり意見いいまくりなのもおもしろい。
下記は $c->dump_these
の名前決めのとき
<nothingmuch> $c->dumped_on_error ?
<sri> ugly
<nothingmuch> hmm
<mst> $c->dump_self ?
<sri> ugly
<nothingmuch> dumped_objs ?
<sri> ugly
import 状況
done 1862/34918( 5.3%) elapsed: 62:33 (3753 sec), ETA 1111:02 (66662 sec)
おそ。。インデックスが大きくなるにつれて速度は落ちていくはずだから ETA はもっと大きくなるよなぁ。何時間コースだろうか。
クリスマスブレンド 100g
もうそんな時期ですか。
店員がこの前買った豆覚えててびびる。
import
おわんねー。3時間くらいかかって約4000通くらい。cat で渡してるのが遅い?
とりあえずどこまで進んだのかわかんないのでいったん終了して、下記のようなスクリプトかいて import 状況わかるようにしてリトライ。
#!/usr/bin/perl
use strict;
use warnings;
use Readonly;
use Time::Progress;
use File::Find;
Readonly my $Maildir => '/home/typester/Maildir/cur';
my $count = qx{ find $Maildir | wc -l };
my $progress = Time::Progress->new;
$count =~ s/\s*//gs;
$progress->attr( min => 1, max => $count );
my $i = 0;
my $find = sub {
$i++;
return unless -f $File::Find::name;
qx{ cat $File::Find::name | ximapd --import };
print $progress->report( "done $i/$count(%p) elapsed: %L (%l sec), ETA %E (%e sec)\r", $i );
};
$progress->restart;
find( $find, $Maildir );