Commit 6ac6dc36ef9a2522777774adb93aaab75460bd7b
1 parent
577aaa43
fix(lifelog/summary): 自动纪要周期 1h → 15min(WorkManager 下限)
之前 periodic 是 1 小时一次,体感像「不自动跑」。注意 UI 里的「10 分钟」 是会话切分间隔(多长静音算另一场),不是跑纪要频率,两者无关。 - 周期 1h → 15min(WorkManager periodic 硬下限,做不到正好 10min)。 - ExistingPeriodicWorkPolicy KEEP → UPDATE:否则旧 1h 排程不被新间隔覆盖。 - worker 已自带并发互斥 + 7min 时间预算,15min 频繁触发不会堆积。 验证:jobscheduler 显示 SummaryWorker 下次 ~14min 后触发。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Showing
1 changed file
with
6 additions
and
3 deletions
lifelog-recorder/app/src/main/kotlin/com/lemon/lifelog/summary/SummaryScheduler.kt
| @@ -17,15 +17,18 @@ object SummaryScheduler { | @@ -17,15 +17,18 @@ object SummaryScheduler { | ||
| 17 | 17 | ||
| 18 | fun schedulePeriodic(ctx: Context) { | 18 | fun schedulePeriodic(ctx: Context) { |
| 19 | val constraints = Constraints.Builder() | 19 | val constraints = Constraints.Builder() |
| 20 | - .setRequiredNetworkType(NetworkType.NOT_REQUIRED) // hermes 在本机 127.0.0.1 | 20 | + .setRequiredNetworkType(NetworkType.NOT_REQUIRED) // 后端都在本机 |
| 21 | .setRequiresBatteryNotLow(true) | 21 | .setRequiresBatteryNotLow(true) |
| 22 | .build() | 22 | .build() |
| 23 | - val request = PeriodicWorkRequestBuilder<SummaryWorker>(1, TimeUnit.HOURS) | 23 | + // 15 分钟是 WorkManager periodic 的硬下限(做不到正好 10min)。会话关闭后 |
| 24 | + // 最多 ~15min 出纪要。worker 自带并发互斥 + 时间预算,频繁触发也不会堆积。 | ||
| 25 | + val request = PeriodicWorkRequestBuilder<SummaryWorker>(15, TimeUnit.MINUTES) | ||
| 24 | .setConstraints(constraints) | 26 | .setConstraints(constraints) |
| 25 | .build() | 27 | .build() |
| 26 | WorkManager.getInstance(ctx).enqueueUniquePeriodicWork( | 28 | WorkManager.getInstance(ctx).enqueueUniquePeriodicWork( |
| 27 | PERIODIC_TAG, | 29 | PERIODIC_TAG, |
| 28 | - ExistingPeriodicWorkPolicy.KEEP, | 30 | + // UPDATE 而非 KEEP:否则旧的 1h 排程不会被新间隔覆盖。 |
| 31 | + ExistingPeriodicWorkPolicy.UPDATE, | ||
| 29 | request, | 32 | request, |
| 30 | ) | 33 | ) |
| 31 | } | 34 | } |