erikbooij / cache-scheduler
充分利用缓存 TTL 的简单方法。
1.0.0
2019-02-24 11:48 UTC
Requires
- php: ^7.1
Requires (Dev)
- phpunit/phpunit: ^7.0
- vimeo/psalm: ^3.0
This package is auto-updated.
Last update: 2024-10-02 00:32:51 UTC
README
此 Cache Scheduler 是一个库,允许您根据自定义的时间表调整您的缓存 TTL。我写了一篇关于为什么您可能需要考虑这个的简短博客。
用法简单
-
使用 Composer 安装它
$ composer require erikbooij/cache-scheduler
-
创建一个时间表和调度器
$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));
-
使用调度器来确定您的缓存项在缓存中的允许生存期
$cache->set('cache-key', 'cache-value', $scheduler->calculateTimeToLive(3600));
传递给 ->calculateTimeToLive()
的第一个参数是如果当前需要数据是最新的缓存 TTL(默认 TTL)。
除了像示例中那样将时间表和过期时间附加到调度器外,您还可以将它们分别作为第二个和第三个参数传递给 ->calculateTimeToLive()
。如果您两个都使用,方法参数将覆盖附加到调度器的值。