時間の掛る Webサーバ
ちょっと処理時間のかかる Webサーバとお付き合いしてて、手元でも確認したくて時間のかかるサーバを作る。過去記事でも TLS1.2 サーバ - hs9587’s diary とか "小さい"Rackアプリケーション - hs9587’s diary とか Webサーバあったよね。
require 'webrick/https' proc = lambda do |req, res| puts start = Time.now sleep 10 res['Content-Type'] = 'text/plain' res.body = "start: #{start}.\nstop : #{stop = Time.now}.\n" puts stop end srv = WEBrick::HTTPServer.new( Port: 3001, # DocumentRoot: './', SSLEnable: true, SSLCertName: [['CN', 'foobar']], ) #srv.ssl_context.ssl_version = :TLSv1_2 srv.mount_proc '', proc trap('INT'){ srv.shutdown } srv.start
やっぱり TLSしゃべった方がいいよね、その辺を WEBrick で指定し、ディレイのあるメソッドを class WEBrick::HTTPServer (Ruby 2.6.0)#mount_proc で割り当てる、 sleep の数字秒ディレイする。割り当てディレクトリ指定空文字列にしとくとなんででも来る、どんなので来てるかは req (class WEBrick::HTTPRequest (Ruby 2.6.0))にある。
こんな感じで ruby で実行する、INT 捕まえて Ctrl-C で終わるようにしてる。