Dados :: Throttler.

Transmissão de dados de limite
Baixe Agora

Dados :: Throttler. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Michael Schilli
  • Site do editor:
  • http://search.cpan.org/~mschilli/

Dados :: Throttler. Tag


Dados :: Throttler. Descrição

Limite de rendimento de dados Dados :: O Throttler é um módulo Perl que ajuda a resolver tarefas de aceleração como "Permitir que um único IP apenas envie 100 e-mails por hora". Ele fornece um armazenamento de dados opcionalmente persistente para acompanhar o que aconteceu antes e oferece uma simples interface Sim / Não para um aplicativo, que pode se concentrar em executar a tarefa real (como enviar e-mail) ou supressora / adiando a definição. , você pode dizer para manter suas estruturas internas de dados na memória: # Throttler de memória Meu $ Throttler = Data :: Throttler-> NOVO (MAX_ITEMS => 100, intervalo => 3600,); no entanto, se as estruturas de dados precisarem Para ser mantido em diferentes invocações de um script ou várias instâncias de scripts usando o throttler, usando um banco de dados persistente: # Throttler persistente Meu $ Throttler = Data :: Throttler-> Novo (Max_Items => 100, Intervalo => 3600, backend => "yaml", backend_options => {db_file => "/tmp/mythrottle.yml",},); a chamada acima irá reutilizar uma loja de back-endirada existente, dado que as configurações max_items e interval são compatíveis e deixaram o armazenado cadeia de balde contida nele intacta. Para especificar que a loja de back-end deve ser reconstruída e todos os contadores sejam redefinidos, use a opção RESET => 1 do construtor de objeto Data :: Throttler. O caso mais simples, os dados :: Throttler apenas mantém a faixa de eventos únicos. Ele permite que um determinado número de eventos por período de tempo seja bem-sucedido e recomenda bloquear o restante: se ($ throttler-> try_push ()) {Imprimir "item pode ser empurrado ";} else {Imprimir" Item precisa esperar ";} Ao estrangular diferentes categorias de itens, como tentativas de envio de e-mails por endereço IP do remetente, uma tecla pode ser usada: se ($ throttler-> try_push (key =>" 192.168.0.1 ") {Imprimir" Item pode ser empurrado ";} else {Imprimir" Item precisa esperar ";} Neste caso, cada tecla será rastreada separadamente, mesmo que a cota para uma chave seja maximizada, outras teclas ainda terão sucesso até que sua cota seja atingida.Synopsis use dados :: Throttler; ### Simple: Limite. a 100 por hora Meu $ Throttler = Data :: Throttler-> NOVO (MAX_ITEMS => 100, intervalo => 3600,); se ($ throttler-> try_push ()) {Imprimir "item pode ser empurrado ";} else {Imprimir" Item precisa esperar ";} ### Avançado: Use um armazenamento de dados persistente e acelerada por tecla: Meu $ Throttler = Data :: Throttler-> Novo (Max_Items => 100, Intervalo => 3600, Backend =>" Yaml ", Backend_Options => {db_file => "/tmp/mythrottle.yml",},}; se ($ throttler-> try_push (key => "somekey")) {Imprimir "Item pode ser empurrado ";} Requisitos: · Perl.


Dados :: Throttler. Software Relacionado