Baseflow / Baseflow/flutter_cache_manager

Make treshold the 1 day treshold for maxObjects configurable

オープン
#500 コメント 1 件 リアクション 3 件 担当者 0 名 GitHub で見る
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。