タグ

2015年9月9日のブックマーク (3件)

  • Railsで大きなファイルを扱う際のポイント|TechRacho by BPS株式会社

    Railsで大きなファイルを扱う際のポイントをまとめてみました。 前提 大きなファイルとは だいたい100MB~10GBくらいのファイルをダウンロード・アップロードするのを想定することにします。 数MB程度だと、特別な工夫なしでもそれほど問題になりません。10GBを超えてくると、気をつけるべき点が変わってくるかと思います。 以下では主にサンプルとして、1GBのファイル(ISOファイルやZIPファイルなど)を想定します。 環境 以下のような環境を想定します。 Railsは4系 Nginx + Unicornのスタンダードな構成 サーバ1台のシンプルな構成(ロードバランサを使用した複数台構成については、末尾に少し記載しています) ダウンロード ファイルのダウンロード まずは、Railsアプリから大きなファイルを配信するケースを考えましょう。 たとえば、ISOファイルをサーバ内に保存しておいて、

    Railsで大きなファイルを扱う際のポイント|TechRacho by BPS株式会社
  • Ruby の Timeout.timeout に例外クラスを指定する時の注意 - tmtms のメモ

    ちょっとハマったのでメモ。 Ruby の Timeout ライブラリを使うと、一定の時間が過ぎても終わらない処理を中断することができます。 require 'timeout' def hoge sleep end def main Timeout.timeout(3) do hoge end rescue Timeout::Error => e p 'main: timeout', e.backtrace.first end main このスクリプトを実行すると3秒たってから終了します。 % ruby t1.rb "main: timeout" "t1.rb:4:in `sleep'" バックトレースから 4行目の sleep 中でタイムアウトが発生したことがわかります。 次に Timeout.timeout を入れ子にしてみます。 require 'timeout' def hoge T

    Ruby の Timeout.timeout に例外クラスを指定する時の注意 - tmtms のメモ
  • 夏の技術職インターンシップ講義資料公開 - クックパッド開発者ブログ

    こんにちは!クックパッド編集室メディア開発グループ長の @yoshiori です。 このまえ夏の技術職インターンシップの前半の開発講義・課題部分が終わったのでさっそく公開しちゃいます! ちなみにこのインターンの対象者はプログラミングはわかるし自分で(授業とかではなく)コード書いている人なので超初心者向けでは無く、少なくともひとつ以上の言語でプログラミングが出来る人向けです。 一日目 TDD + git 編(@yoshiori) 講義初日なのでまずは簡単に肩慣らし & 開発の基礎の部分として TDD と git で始めました。 git については軽く説明し TDD は基のテストファーストで進めて行きました。 ちゃんと何かをするたびにテストを実行し、メッセージを見れば次にすることが分かるというのを体験してもらい、GREEN が良くて RED が悪いのではなく、GREEN を想定しているのに

    夏の技術職インターンシップ講義資料公開 - クックパッド開発者ブログ