2012-01-01から1年間の記事一覧

CakePHP2.2のバッチ用ファイルの置き場所とファイル名のルールはCakePHP1.3と違う

CakePHP2.2で試してはまったのでメモ。諸事情でCakePHPでバッチ処理を書こうと思い立ちまして、2.0のガイドが英語なので、どうせ似たようなもんだろうって思って1.3用の日本語ガイド読みながらコピペしたりして試したんですよ。そしたら、なんか↓みたいなエ…

ActiveRecordでset_table_nameを使わずにテーブル名を変えてクエリを実行する

Rails 3.1.3で試した。影響の大きいset_table_nameを使わずに、O/RマッパーとかSQL生成とかActiveRecordの便利な機能を使いつつ、別名のテーブルにクエリを実行する。 # "Hoge"というモデルがあって、デフォルトで関連づけられた "hoges" テーブルではなく、…

HTTPステータスコード499のとき、GETリクエストが即座に再送される?

nginx 0.8.x をリバースプロキシにして、unicorn + rails の構成。なんか、全く同じパラメータのGETリクエストが2回飛んで来ることがある。 それで、一回しか処理しないつもりのものが二回処理されて地獄発動。アクセスログをみてみると、同じ時間に全く同じ…

Rails(というかAcriveRecord)で日次テーブルに書き込む(保存時に保存先テーブル名を変更する)

Rails 3.2.2で試した。ログテーブルのように日次で保存先を切り替える需要があります。 ActiveRecordは通常、クラス名とテーブル名が一対一で関連付いているので、切り替えは切り替えを書いてあげる必要があります。set_table_nameをクラス定義部分で書く方…

【訂正】Railsでconnection数を破綻させずにestablish_connectionで別DBを利用する

前のエントリ(http://d.hatena.ne.jp/raugisu/20120428/1335598633)で、ActiveRecord で別DBに接続するために establish_connection を安易に使うことで発生する地獄について書いた。 んで、その地獄への対策として挙げたもののなかで、一番良いと思われる…

ActiveRecordのestablish_connectionに気をつけろ

Rails3.1.3の話。別DBにつなぐときの、ActiveRecordのestablish_connectionに気をつけろ。やつは1クラスごとに独自にdatabase.ymlのpool設定分のコネクションプールを作るぞッ。プールの意味ない!!マスターDB1台で運用しているときは全然問題ない。コネク…

Linuxでバッチのログを書き出し中のファイルを消して死ぬかと思ったが助かった話

諸事情で結構でかいデータの処理をすることになった。 かかる時間とかをログに出して計測しようと思って、標準出力をリダイレクトさせて放置してたんですわ。んで、まあ、うっかり消しちゃった。 絶賛書き出し中の、そのファイルを。一瞬死ぬかと思ったんだ…

mysql2 アダプタなら、IDにBIGINTを使っても大丈夫。

諸事情でRailsのActiveRecordで使ってるテーブルのidがbigintだったりして、心臓が止まるかと思いました。 使ってるシステムは「Rails3 + mysql2」で助かった、というお話。「rails bigint」でググるとでてくるんですが、Railsでidにbigintを使うと値が32ビ…