NAME
    Data::Throttler_CHI - Data::Throttler-like throttler with CHI backend

VERSION
    This document describes version 0.003 of Data::Throttler_CHI (from Perl
    distribution Data-Throttler_CHI), released on 2020-02-19.

SYNOPSIS
     use Data::Throttler_CHI;
     use CHI;

     my $throttler = Data::Throttler_CHI->new(
         max_items    => 100,
         interval     => 3600,
         cache        => CHI->new(driver=>"Memory", datastore=>{}),
         #nof_buckets => 100, # optional, default: int(sqrt(interval))
     );

     if ($throttle->try_push) {
         print "Item can be pushed\n";
     } else {
         print "Item must wait\n";
     }

DESCRIPTION
    EXPERIMENTAL, PROOF OF CONCEPT.

    This module tries to use CHI as the backend for data throttling. It
    presents an interface similar to, but simpler than, Data::Throttler.

METHODS
  new
    Usage:

     my $throttler = Data::Throttler_CHI->new(%args);

    Known arguments ("*" means required):

    *   max_items*

    *   interval*

    *   cache*

        CHI instance.

    *   nof_buckets

        Optional. Int. Number of buckets. By default calculated using:
        int(sqrt(interval)).

  try_push
    Usage:

     $bool = $throttler->try_push(%args);

    Return 1 if data can be pushed, or 0 if it must wait.

    Known arguments:

HOMEPAGE
    Please visit the project's homepage at
    <https://metacpan.org/release/Data-Throttler_CHI>.

SOURCE
    Source repository is at
    <https://github.com/perlancar/perl-Data-Throttler_CHI>.

BUGS
    Please report any bugs or feature requests on the bugtracker website
    <https://rt.cpan.org/Public/Dist/Display.html?Name=Data-Throttler_CHI>

    When submitting a bug or request, please include a test-file or a patch
    to an existing test-file that illustrates the bug or desired feature.

SEE ALSO
    Data::Throttler

    CHI

AUTHOR
    perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2020 by perlancar@cpan.org.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

