erikbooij/cache-scheduler

充分利用缓存 TTL 的简单方法。

1.0.0 2019-02-24 11:48 UTC

This package is auto-updated.

Last update: 2024-10-02 00:32:51 UTC


README

Cache Scheduler 是一个库,允许您根据自定义的时间表调整您的缓存 TTL。我写了一篇关于为什么您可能需要考虑这个的简短博客

用法简单

  1. 使用 Composer 安装它

    $ composer require erikbooij/cache-scheduler
  2. 创建一个时间表和调度器

    $schedule = (new Schedule)
        ->requireUpToDateDataFrom(Schedule::MON, 8, 0)
        ->allowStaleDataFrom(Schedule::MON, 17, 30)
        ->requireUpToDateDataFrom(Schedule::TUE, 8, 0)
        ->allowStaleDataFrom(Schedule::TUE, 17, 30)
        ->requireUpToDateDataFrom(Schedule::WED, 8, 0)
        ->allowStaleDataFrom(Schedule::WED, 17, 30)
        ->requireUpToDateDataFrom(Schedule::THU, 8, 0)
        ->allowStaleDataFrom(Schedule::THU, 17, 30)
        ->requireUpToDateDataFrom(Schedule::FRI, 8, 0)
        ->allowStaleDataFrom(Schedule::FRI, 17, 30);
    
    // Create the scheduler, passing it a SystemClock instance to interface with system time
    $scheduler = (new Scheduler(new SystemClock))
        ->setSchedule($schedule)
        ->setExpirationSpread(ExpirationSpread::minutes(30));
  3. 使用调度器来确定您的缓存项在缓存中的允许生存期

    $cache->set('cache-key', 'cache-value', $scheduler->calculateTimeToLive(3600));

传递给 ->calculateTimeToLive() 的第一个参数是如果当前需要数据是最新的缓存 TTL(默认 TTL)。

除了像示例中那样将时间表和过期时间附加到调度器外,您还可以将它们分别作为第二个和第三个参数传递给 ->calculateTimeToLive()。如果您两个都使用,方法参数将覆盖附加到调度器的值。