この辺の情報がなさそうだったので。 http://shop.oreilly.com/product/9781784399788.do 唯一のScrapy本の「Learning Scrapy」本によると、 DBパイプラインは以下のような感じにするのがよいらしい。 通常の同期的に書くとブロッキングされるので、非同期で書く。 twistedにDBプーリングの仕組みが提供されているので、それを使う(DBAPI2インタフェースならどのDBでもよい) import logging from twisted.enterprise import adbapi from twisted.internet import reactor, defer class DatabaseWriterPipeline(object): @classmethod def from_crawler(cls, crawler)
前にRubyでtry-with-resourcesが使いたいという話を書いてそのときにリリースしたgemもあるが、人類の安全に・便利にリソースを解放したいという欲求には際限がない。 try-with-resources は便利なんだけど欠点がないわけではなくて、リソースの確保と解放を一ヶ所でまとめてやらないとネストが深くなる。複数箇所に分けて書くならネストも2段になってしまう。 これはこれで整理されたコードを書く圧力になるので悪くない面もあるんだけど、とはいえもうちょっと自由にやりたい、いい方法は無いもんか、という話。 defer ある。Golangの defer が便利そう。defer foobar って書いとくと、そのスコープを外れるときに自動的に foobar の内容が実行される。あるスコープのどこに何度書いてもいい。これは便利。 # GolangのdeferのままRubyにもってき
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く