-#!/usr/bin/ruby1.8
-#
-# You may specify the path to the FastCGI crash log (a log of unhandled
-# exceptions which forced the FastCGI instance to exit, great for debugging)
-# and the number of requests to process before running garbage collection.
-#
-# By default, the FastCGI crash log is RAILS_ROOT/log/fastcgi.crash.log
-# and the GC period is nil (turned off). A reasonable number of requests
-# could range from 10-100 depending on the memory footprint of your app.
-#
-# Example:
-# # Default log path, normal GC behavior.
-# RailsFCGIHandler.process!
-#
-# # Default log path, 50 requests between GC.
-# RailsFCGIHandler.process! nil, 50
-#
-# # Custom log path, normal GC behavior.
-# RailsFCGIHandler.process! '/var/log/myapp_fcgi_crash.log'
-#
-require File.dirname(__FILE__) + "/../config/environment"
-require 'fcgi_handler'
-
-class OpenStreetMapFCGIHandler < RailsFCGIHandler
-protected
- def process_request(cgi)
- # Call superclass to process the request
- super
-
- # Restart if we've hit our memory limit
- if resident_size > 512
- dispatcher_log :info, "restarting due to memory limit"
- restart!
- end
- end
-
- def resident_size
- # Read statm to get process sizes. Format is
- # Size RSS Shared Text Lib Data
- fields = File.open("/proc/self/statm") do |file|
- fields = file.gets.split(" ")
- end
-
- # Return resident size in megabytes
- return fields[1].to_i / 256
- end
-end
-
-OpenStreetMapFCGIHandler.process!