Baseflow / Baseflow/flutter_cache_manager
Make treshold the 1 day treshold for maxObjects configurable
- 主要言語
- Dart
- スター
- 809
- フォーク
- 510
- 平均マージ
- 6分
- マージ済み PR(30日)
- 1
説明
## 🏗 Enhancement Proposal
When setting maxNrOfCacheObjects to 100 the cache can still grow above that size. This is caused by logic in the CacheObjectProvider in the getObjectsOverCapacity function.
```
where: '${CacheObject.columnTouched} < ?',
whereArgs: [
DateTime.now().subtract(const Duration(days: 1)).millisecondsSinceEpoch
],
```
From an this issue #349 I understand the reasoning behind this default value.
### Pitch
For app which are not used very intense I think the default makes sense. However for apps which use a lot of images and are used intensively throughout the day this results in a very big local cache. I've got reports of several GB.
I would argue that the there should be a parameter to override this in the Config object. This would be in line with for example the maxObjects and stalePeriod parameters.
Concretely:
- Add parameter to Config ObjectMinimumRetention (open for better naming)
- Type Duration
- Optional, default value 1 day
- Pass and use this parameter to the CacheObjectProvider
- Document
I'm happy to do a PR on this as you think this makes sense.
### Platforms affected (mark all that apply)
- [x] :iphone: iOS
- [x] :robot: Android
コントリビューションガイド
調査の方向性
CacheObjectProvider.getObjectsOverCapacity から始めて、現在 Config オブジェクトが maxObjects と stalePeriod を provider に渡している方法を追跡します。1 日をデフォルトとするオプションの Duration 設定を追加し、provider 経由で渡し、関連する設定オプションと併せてドキュメント化し、キャッシュが設定された保持しきい値を尊重することを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- dart, flutter
- 領域
- mobile-dev
- issue の種類
- 機能追加
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 45/100