1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
package Plack::Middleware::Throttle::Daily; use Moose; extends 'Plack::Middleware::Throttle::Limiter'; sub cache_key { my ( $self, $env ) = @_; $self->client_identifier($env) . "_" . DateTime->now->strftime("%Y-%m-%d"); } sub reset_time { my $dt = DateTime->now; (24 * 3600) - (( 60 * $dt->minute ) + $dt->second); } 1;