時間の掛る 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 で終わるようにしてる。