おまぬけ活動日誌

最近のツッコまれどころ

この日誌から Google してもらう


2004年04月22日(Thu) 電車の中が既に寒い [同日]

[tDiary] 503を返すtDiary

load averageを見て自滅するためのrubyライブラリ を改良して、ちゃんと503を返すようにしてみました。 CGIスクリプトのしょっぱなで何も考えずにrequireすればいい。 下記では、最近1分の負荷が3より大きいときに、クライアントにはエラーを返し、 ログにユーザーエージェントとIPアドレスを記録します。

if (av = (`uptime`.split( /[, ]+/ ))[10].to_f) > 4 then
	puts <<_ERROR
Status: 503 Service Temporarily Unavailable
Content-type: text/html; charset=iso-8859-1

<html>
<head><title>503 Service Temporarily Unavailable</title></head>
<p>I am sorry but the load average is currently too high.</p>
</html>
_ERROR
	STDERR.puts "[#{Time.now.strftime('%c')}] #{$0}: load average too high (#{av}): #{ENV['HTTP_USER_AGENT']} from #{ENV['REMOTE_ADDR']}"
	exit
end

うまく動くかな? ていうかシステムコールを利用する拡張ライブラリをはよつくるべきだよね。

(追記) 制限を3にしていたらけっこうな人がひっかかっちゃったみたいでした。 すみません。4にしてみました。

[memo] Nadoka: IRC Client Server Program

ささださん作のmadoka clone。そのうちためすー。[ruby-list: 39576]より。


作り手とその取り巻きだけが楽しんでる間は本物じゃない。その中身が理解できない人々の生活を変えてこそ本物だ


zunda <zunda at freeshell.org>