2015-12-01から1ヶ月間の記事一覧

IO.popenメソッドで標準エラー出力を取得するには

結論:IO.popenで標準エラー出力を取得するオプション ぐだぐだ長いので、求めているものを先に示しておきます。 IO.popen(command, :err => [:child, :out]) IO.popen(command, :err => [:child, :out]) { |pipe| … } 前置き まず先日書いた記事の引用を(…

Herokuのappを二つ使って交互起動で常時運用(Rack版)

この記事は2016/5/31までの内容です。 Herokuのappを二つ使って交互起動で常時運用(Sinatra版) - 別館 子子子子子子(ねこのここねこ) では Sinatra で交互起動させましたが、大したこともしてないので Sinatra を動かすほどでもない気がしてきました。と…

Herokuのappを二つ使って交互起動で常時運用(Sinatra版)

この記事は2016/5/31までの内容です。 Twitter bot の運用に heroku を使っている [twitter:@riocampos] です。Web app はあまり使っていません。 Heroku free dynoがとうとう24x7じゃなくなったorz - Qiita でも記載しましたが、 Free dyno だと18時間起動/…

Heroku router log format

2015/12/12現在(ふつうはさほど変わらないだろうけどね。11/2更新と書いてある。 HTTP Routing | Heroku Dev Center Heroku router log format info logs 2012-10-11T03:47:20+00:00 heroku[router]: at=info method=GET path=/ host=myapp.herokuapp.com f…

Sinatra内でloopなど定期作業を行うには

単純に Thread.start でスレッドを分けるんですけどね。重要なのはいつものイディオムだと問題が生じる、ということ。 ひとまず結論を先に示します。 クラシックスタイル require 'sinatra' Thread.start do loop do puts Time.now sleep 3 end end get '/up…

urlが存在するか確認するメソッド

元は!url.nil? && !url.empty?だけだったメソッドに、応答コードが200かどうかの部分を追加。 require 'net/http' def url_exist?(url) code = ->(url) { uri = URI.parse(url) Net::HTTP.start(uri.host, uri.port) { |http| http.get(uri.path) }.code } !…