harmakit/credit-manager

每分钟信用限制服务的管理工具

dev-master 2022-02-13 17:43 UTC

This package is auto-updated.

Last update: 2024-09-26 12:39:45 UTC


README

一个用于跟踪和调用每分钟信用限制服务的简单库,使用 predis/predis

安装

composer require harmakit/credit-manager

使用

CreditPerMinuteLimitedObject 接口继承你的类,该类调用一些每分钟信用限制功能。

class SomeLimitedExecutor implements CreditPerMinuteLimitedObject
{
    private CreditManager $creditManager;

    public function __construct(CreditManager $creditManager) {
        $this->creditManager = $creditManager;
        $this->creditManager->addResource($this); // Call this to add your class object to the CreditManager's list of services
    }

    public function __destruct()
    {
        $this->creditManager->removeResource($this);
    }

    public function getCreditsPerMinuteLimit(): int
    {
        return 100; // Your value of credits which are allowed to spend over 1 minute
    }
}

现在你可以开始管理你的调用啦!

public function callSomething($callCost = 25): void
{
    $this->creditManager->spendCredits($this, $callCost); // Call this method when you want to spend credits
    // CreditManager will wait using sleep() function to accumulate enough credits to perform required call cost if needed
    doCallSomething();
}