无线更新的间隔计时器与数据库字段?
Interval timer vs database field for over-the-air updates?
我想为用户提供 OTA 更新。我的应用程序在数据库上使用实时侦听器,所以我的问题是:
设置一个 15 分钟的间隔计时器以检查是否有可用更新(需要网络呼叫和长时间计时器)
指定何时需要更新的每个用户的数据库字段(每个用户 2 次写入调用)
检查应用程序何时启动或前台(后者可能在单个会话中多次出现,必须添加不应期)
一些混合或其他解决方案
...或者当最终用户体验并没有真正受到我选择的任何选项的影响时,我可能过于担心某些最佳实践/优化解决方案?
我的解决方案基本上是选项 3 的实现。如果用户不断地进出应用程序,它会在上次检查更新后等待 15 分钟再次检查。
- 一个 useRef 时间变量,用于存储应用最后一次被前台化的时间
- 检查更新的更新函数
- 如果可用:获取更新并重新加载应用程序
- 用于在启动时检查更新的 useEffect
- 监听 AppState 变化的 useEffect
- 如果应用程序在前台运行 && time.current + 15000 < Date.now():检查更新
我想为用户提供 OTA 更新。我的应用程序在数据库上使用实时侦听器,所以我的问题是:
设置一个 15 分钟的间隔计时器以检查是否有可用更新(需要网络呼叫和长时间计时器)
指定何时需要更新的每个用户的数据库字段(每个用户 2 次写入调用)
检查应用程序何时启动或前台(后者可能在单个会话中多次出现,必须添加不应期)
一些混合或其他解决方案
...或者当最终用户体验并没有真正受到我选择的任何选项的影响时,我可能过于担心某些最佳实践/优化解决方案?
我的解决方案基本上是选项 3 的实现。如果用户不断地进出应用程序,它会在上次检查更新后等待 15 分钟再次检查。
- 一个 useRef 时间变量,用于存储应用最后一次被前台化的时间
- 检查更新的更新函数
- 如果可用:获取更新并重新加载应用程序
- 用于在启动时检查更新的 useEffect
- 监听 AppState 变化的 useEffect
- 如果应用程序在前台运行 && time.current + 15000 < Date.now():检查更新