极光笔记 | EngageLab Push的多时区解决方案

这篇具有很好参考价值的文章主要介绍了极光笔记 | EngageLab Push的多时区解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

01、引言

多时区问题一直是全球客户和终端用户面临的挑战之一。EngageLab Push 致力于解决这个问题,确保全球各地的终端用户可以平等地享受到同样的推送服务,同时让客户能够更好地管理不同时区的应用和对应的终端用户。

02、解决多时区问题的总体方案

极光笔记 | EngageLab Push的多时区解决方案

1、在服务器端,所有涉及时间的信息统一以时间戳形式存储,

2、portal 端的展示,以用户给应用设置的时区对应的时间展示

3、终端和服务器交互协议中的时间以时间戳来传递,终端再根据本地时区信息将时间戳转换为本地时间

03、管理系统多时区

管理员在 portal 上创建应用,再给应用设置时区,这些信息都会保存到数据库中,跟时间相关的信息都以时间戳的格式存储在数据库中。当管理员查询应用相关信息时,对于时间相关信息,系统将时间戳转换成应用所在时区的本地时间展示给管理员

极光笔记 | EngageLab Push的多时区解决方案

04、业务处理多时区

推送业务按推送时效性来分有两种推送方式,立即推送和定时推送,立即推送跟时区特性无关,点击推送时就立即推送,但是定时推送跟时区相关,到底是以应用所在时区的时间进行定时推送,还是以终端所在时区对应的时间进行定时推送呢,这两种定时推送都存在相应的场景。

 预设条件

如下图

  • 应用所在时区为东6区

  • 服务器部署在东8区

  • 终端用户分布在东4区、东1区、西3区

极光笔记 | EngageLab Push的多时区解决方案

场景1:根据应用所在时区的时间进行定时推送场景

比如某款电商应用,计划在中午12点发起秒杀活动,希望在12点钟准时给用户推送提示用户进入秒杀页面参加活动。这种场景就需要用到根据应用所在时区的时间进行定时推送。

1、现在应用需要在东六区的2023-03-18 12:00:00 进行秒杀活动,于是在东六区的2023-03-18 10:00:00设置了一个定时推送任务,该任务的定时时间为应用(应用归属于组织,因此应用的时区继承了组织的时区)所在时区的2023-03-18 12:00:00

极光笔记 | EngageLab Push的多时区解决方案

2、东六区的2023-03-18 12:00:00,转换为服务器的东8区的时间为:2023-03-18 14:00:00,所以在服务器的2023-03-18 14:00:00, 触发定时任务,将消息推送给对应的终端用户。

3、终端用户在同一时刻收到秒杀的推广消息。本地时间分别是

  • 东4区的2023-03-18 10:00:00

  • 东1区的2023-03-18 07:00:00

  • 西3区的2023-03-18 03:00:00

场景2:根据终端所在时区的时间进行定时推送场景

比如说有个早间新闻播报的应用,需要在早上8点定时将最新的资讯推送到终端用户,如果以应用所在时区的时间来推送,应用所在时区的早上8点可能是终端所在时区的凌晨3点钟,这个时候经消息推送给终端用户,显然是不合适的,因此需要以终端用户所在时区的早上8点进行定时推送。

1、管理人员设置了一个定时推送任务,该任务的定时时间为终端用户所在时区的2023-03-18 08:00:00进行推送

极光笔记 | EngageLab Push的多时区解决方案

2、服务器定时扫描定时推送任务

  • 服务器发现该定时推送的目前中有东4区的终端用户,东4区的2023-03-18 08:00:00转换为服务器的东8区的时间为2023-03-18 12:00:00,所以在服务器的2023-03-18 12:00:00, 触发定时推送任务,将消息推送给东4区的终端用户。

  • 服务器发现该定时推送的目前中有东1区的终端用户,东1区的2023-03-18 08:00:00转换为服务器的东8区的时间为2023-03-18 15:00:00,所以在服务器的2023-03-18 15:00:00, 触发定时推送任务,将消息推送给东1区的终端用户。

  • 服务器发现该定时推送的目前中有西3区的终端用户,西3区的2023-03-18 08:00:00转换为服务器的东8区的时间为2023-03-18 19:00:00,所以在服务器的2023-03-18 19:00:00, 触发定时推送任务,将消息推送给西1区的终端用户。

3、终端用户都是本地时间的2023-03-18 08:00:00点收到推送消息

业务流程

1、终端时区的上报

每个终端在登陆服务器时,就把当前终端所在的时区上报给服务,服务器根据时区将用户信息分组存储

极光笔记 | EngageLab Push的多时区解决方案

2、定时推送的设置

管理人员在设置定时推送任务时根据任务特性选择是按应用所在时区定时推送还是按终端所在时区定时推送。服务器将这些定时推送任务信息保存到数据库中

极光笔记 | EngageLab Push的多时区解决方案

3、定时推送的触发

服务器会启动一个定时扫描进程,去扫描数据库中的定时推送任务是否达到某个时区所定时的时间,如果到了,就将消息推送推送给该时区的用户。

极光笔记 | EngageLab Push的多时区解决方案

关于极光

极光(Aurora Mobile,纳斯达克股票代码:JG)成立于2011年,是中国领先的客户互动和营销科技服务商。成立之初,极光专注于为企业提供稳定高效的消息推送服务,凭借先发优势,已经成长为市场份额遥遥领先的移动消息推送服务商。随着企业对客户触达和营销增长需求的不断加强,极光前瞻性地推出了消息云和营销云等解决方案,帮助企业实现多渠道的客户触达和互动需求,以及人工智能和大数据驱动的营销科技应用,助力企业数字化转型。


 文章来源地址https://www.toymoban.com/news/detail-468321.html

到了这里,关于极光笔记 | EngageLab Push的多时区解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git push --set-upstream origin master时超时失败的解决方案

    提示:这里描述项目中遇到的问题: git push --set-upstream origin master 时,超时失败,显示如下错误: 使用https协议,不要使用ssh协议 在你的git init的本地仓库目录,执行命令 git config --local -e 然后把里面的url配置项从git格式 url = git@git.acwing.com:username/xx.git 修改为https格式 url = h

    2024年01月19日
    浏览(56)
  • git push时报错error: failed to push some refs to ‘https://gitee.com/**.git‘的解决方案

    今天小编在学习git中报错遇到这样的问题,如下图 问题弄得小编很是烦恼。经过查阅资料找到了问题的解决方案,下面就来一起解决这个问题吧 成因: 可能 是因为在手动修改了远程仓库中的文件,导致一些文件在本地仓库和远程仓库上不一致,故而引发该错误。当然也有可

    2024年02月11日
    浏览(57)
  • git提交到远程仓库 Git HEAD detached from origin(冲突解决后无法正常push) 问题的解决方案

    目录 一、Git提交代码的流程 二、将本地项目发布到gitee上 将本地代码库与远程代码库相关联 强制把远程仓库代码拉取到到当前分支上面。ps:如果仓库为空这一步可以跳过 三、git提交代码--修改提交的地址 四、获取密钥 Git HEAD detached from origin(冲突解决后无法正常push) 问题

    2024年02月03日
    浏览(70)
  • ! [rejected] master -> master (fetch first)error: failed to push some refs to 解决方案

         ! [rejected]  master - master (fetch first)error: failed to push some refs to 解决方案  To https://gitee.com/xxxx.git  ! [rejected]        master - master (fetch first) error: failed to push some refs to \\\'https://gitee.com/xxxxx.0.git\\\' ! [拒绝]master -gt;Master(先取) 错误:未能向“https://gitee.com/cxxxxx0.git”推送一些引用

    2024年02月04日
    浏览(52)
  • iOS pod repo push 报错 ld: file not found: libarclite_iphoneos.a 问题解决方案

    Xcode 升级 14.3 之后,在Xcode 运行项目会收到以下错误 File not found: /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a 项目中可以通过以下方法解决编译错误,就是在 Podfile 中,设置 IPHONEOS_DEPLOYMENT_TARGET ,代码如下: 但是因为项目中有一

    2024年02月06日
    浏览(54)
  • error: src refspec master does not match anyerror: failed to push some refs to 解决方案

         是本地仓库add后未commit的原因 中间如果出现报错,先不要处理,只要走完这4步,基本上没有问题。 我在处理时,在走某个步骤时出现了报错,我也是一步步走的。最后项目成功提交至服务器 第1步:先添加文件 第2步:远程初始化 第3步:添加至远程 第4步:提交 其实

    2024年02月03日
    浏览(41)
  • 笔记本没有WIFI列表解决方案

    打开个性化 点击打开或关闭系统图标 查看网络那一项是否是打开 如果没有打开就打开注册表 如果不是上图中的数据,就右键新建输入以上的数据。如果还是不能解决就进行如下操作 如果以上操作还是不行就进行最后操作 WIFI列表终于出现了

    2024年02月13日
    浏览(59)
  • 【mac笔记本时间异常】解决方案

    由于长时间没用 Mac自动关机了,充电后开机发现时间一直不正确,后连接苹果技术支持,记录步骤: 1.检查基础设置: 1.重新打开自动设置时间与日期-然后重启电脑 2.检查定位服务是否开启 2.检查第三方软件 1.开启安全模式 1、将 Mac 关机。 2、按住电源按钮 10 秒让 Mac 启动

    2024年04月13日
    浏览(43)
  • 笔记本外接键盘解决方案:禁用笔记本自带键盘

    笔记本外接键盘时,有时会将外接键盘放置在笔记本自带键盘上,加上现代笔记本设计轻薄,外接键盘(尤其是108键的)在使用过程中经常触碰自带键盘,禁用自带键盘后将提供极大的工作便利。 通过系统自带sc命令禁用PS/2(i8042prt)服务: 禁用服务: 恢复服务: I8042prt是

    2024年02月12日
    浏览(67)
  • 【Vue学习笔记】跨域的六种解决方案

    @TOC 跨域问题指的是在浏览器端,当一个网页的脚本(如JavaScript)向另一个域名的网站发起请求时,如果两个网站的域名不一致,就会出现跨域问题。由于浏览器的同源策略(Same Origin Policy),默认情况下,脚本只能访问同一个域名下的资源,不能访问其他域名下的资源。

    2024年02月10日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包