タグ

ブックマーク / qiita.com/y-ken (2)

  • コールバックを使わずに、RubyでHTTPリクエストを並列発行する方法 - Qiita

    次のようなユースケースで、HTTPリクエストを並列発行したいことがあるでしょう。 URLのコンテンツ内容の監視(Webレスポンス監視) コンテンツの応答監視(ページの更新チェック) Webページのクロール(スクレイピング) 非同期処理と言ったらコールバックですね。ただ、コールバック地獄は避けたい。 そんな時には次のようにEventMachineとFiberを用いると、読みやすい非同期処理の実装が出来ます。 URLの数だけ並列実行する方法 とにかく速いですが、URLリストが増えた場合には次の問題が起きうるので注意が必要です。 ファイルディスクリプタの上限を叩く可能性 接続先Webサーバの最大同時接続数を使い果たす可能性 NATルータ機器を通してインターネットに出ている場合には、そのNATテーブルが溢れる可能性 スパイク的なリクエストを発生させることで、下りネットワーク帯域を埋め尽くす可能性

    コールバックを使わずに、RubyでHTTPリクエストを並列発行する方法 - Qiita
  • MySQLに緯度経度を保存する際の、カラム型の選び方 - Qiita

    はじめに 数値を丸められること無く、記録したとおりに緯度経度情報を保存したい。 もちろん文字列型ではなく浮動小数点型を使う方が処理効率が良いですよね。 どのようなカラムを使えば意図通りに保存出来るのかまとめてみました。 結論 VARCHAR型やDECIMAL型を利用する手もありますが、どちらも計算コストが高いため、 基的にdouble(9,6)を利用すれば問題ないでしょう。 最大値と最小値 それぞれの最小値と最大値は次の通りです。 緯度 (latitude) : -90 〜 90 経度 (longitude) : -180 〜 180 小数点桁数と精度の関係 どの程度の精度を求めるには、どの程度の桁数が必要となるか、まとめてみましょう。 ざっくりと計算しますと地球の円周は約40,000,000mで 緯度はぐるっと360度ですから緯度1度は 40000000/360≒111111.1111

    MySQLに緯度経度を保存する際の、カラム型の選び方 - Qiita
  • 1