#!/usr/bin/perl -w use strict; use Log::Log4perl qw(:easy); # Log::Log4perl->easy_init({ level => $DEBUG, layout => "%F{1}:%L %m%n"}); use Data::Throttler; my $db_file = "db_file.dat"; unlink $db_file; my $throttler = Data::Throttler->new( interval => 120, max_items => 1000, backend => 'YAML', backend_options => { db_file => $db_file, } ); my $pid = fork(); if( !defined $pid ) { die "fork failed: $!"; } if( $pid ) { # parent push_test( $throttler ); DEBUG "Parent done"; waitpid( $pid, 0 ); } else { # child push_test( $throttler ); DEBUG "Child done"; exit 0; } ########################################### sub push_test { ########################################### my( $throttler ) = @_; for( 1... 100 ) { $throttler->try_push(key => "foobar"); $throttler->try_push(key => "foobar"); $throttler->try_push(key => "foobar"); } }