Add cache size limit check to caching routes

This commit is contained in:
Serdar Dogruyol 2018-09-16 15:34:43 +03:00
parent 8fb028149b
commit 1a8a3c5b1d

View file

@ -4,7 +4,8 @@ module Kemal
class RouteHandler class RouteHandler
include HTTP::Handler include HTTP::Handler
INSTANCE = new INSTANCE = new
CACHED_ROUTES_LIMIT = 1024
property routes, cached_routes property routes, cached_routes
def initialize def initialize
@ -33,7 +34,11 @@ module Kemal
route = @routes.find(lookup_path) route = @routes.find(lookup_path)
@cached_routes[lookup_path] = route if route.found? if route.found? && @cached_routes.size < CACHED_ROUTES_LIMIT
@cached_routes[lookup_path] = route
else
@cached_routes.clear
end
route route
end end