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 | 17 | |
| 18 | 18 | fun schedulePeriodic(ctx: Context) { |
| 19 | 19 | val constraints = Constraints.Builder() |
| 20 | - .setRequiredNetworkType(NetworkType.NOT_REQUIRED) // hermes 在本机 127.0.0.1 | |
| 20 | + .setRequiredNetworkType(NetworkType.NOT_REQUIRED) // 后端都在本机 | |
| 21 | 21 | .setRequiresBatteryNotLow(true) |
| 22 | 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 | 26 | .setConstraints(constraints) |
| 25 | 27 | .build() |
| 26 | 28 | WorkManager.getInstance(ctx).enqueueUniquePeriodicWork( |
| 27 | 29 | PERIODIC_TAG, |
| 28 | - ExistingPeriodicWorkPolicy.KEEP, | |
| 30 | + // UPDATE 而非 KEEP:否则旧的 1h 排程不会被新间隔覆盖。 | |
| 31 | + ExistingPeriodicWorkPolicy.UPDATE, | |
| 29 | 32 | request, |
| 30 | 33 | ) |
| 31 | 34 | } | ... | ... |