专栏首页小康的自留地优雅解决LeanCloud流控问题

优雅解决LeanCloud流控问题

前言

最近好多人遇到了"因流控原因,通过定时任务唤醒体验版实例失败,建议升级至标准版云引擎实例避免休眠"。我也遇到了这种问题,太难受了。难道白嫖结束了,羊被薅死了?

但我还是不甘心,于是只能另寻他法。

首先看到官方所说:

既然是同一时刻,那么是不是意味着只要搓开时间就可以了呢?

我便调整时间尝试了几天,第一天还好,但以后便又出现了流控导致的失败。

因此,调整时间避免的方案治标不治本。还需另寻他法。

目前方案

  1. 修改定时任务的唤醒时间 这个方案在上边我已经介绍过了,治标不治本。这里我并不推荐。
  2. 在博客多加入一条请求。 也就说每一次访问博客时,将leancloud唤醒。这种方法可以,这也是我最先想到的,但无疑,这会在一定程度上拖慢博客加载速度。
  3. 第二个方案的变种 为什么说是变种。因为也是加一个请求,之不过不会在你博客加,那么加在哪里呢?请继续往后看。

优雅解决

LeanCloud的机器唤醒其实还有一种方式。详情请看休眠策略

  • 如果应用最近一段时间(半小时)没有任何外部请求,则休眠。
  • 休眠后如果有新的外部请求实例则马上启动。访问者的体验是第一个请求响应时间是 5 ~ 30 秒(视实例启动时间而定),后续访问响应速度恢复正常。
  • 强制休眠:如果最近 24 小时内累计运行超过 18 小时,则强制休眠。此时新的请求会收到 503 的错误响应码,该错误可在 云引擎 > 统计 中查看。

那么我们只要每三十分钟之内在外部访问一次不就可以解决了么?

于是我查看了一下valine-admin的唤醒源代码,自唤醒云函数也是这样实现的。于是便继续开始白嫖。

开始尝试

这里我使用的是GitHub+Actions。是不是很熟悉,自动部署也是这个方案呢。

  1. 鼠标放在右上角,选择setting
  1. 点击Developer settings
  1. 选择Personal access tokens,添加一个新的TOKEN。 这个TOKEN主要使用来启动actions和上传结果用的。 设置名字为GITHUB_TOKEN , 然后勾选 repo , admin:repo_hook , workflow 等选项,最后点击Generate token即可。

名字请务必使用GITHUB_TOKEN

  1. 接下来FORK项目。 地址:https://github.com/blogimg/WakeLeanCloud 如果觉得好用可以点个赞哦!
  2. 成功FORK后,进入项目的设置。添加你的leancloud的后台地址(也就是评论管理的后台地址)

选择Secrets,添加你的地址

其中Name的名字必须为SITE,Value可以是多个地址,用英文逗号分隔。不要中中文逗号,不要用中文逗号,不要用中文逗号

  1. 接下来对自己的项目点个star就能启动了,启动后请切换到actions,看看是否运行成功。
    • 成功 那么你就可以关掉了,默认是每天8:00-24:00时每20分钟运行一次。(GitHub时间稍有延迟,大概时2-5分钟。)
    • 失败 请认真看本教程。

    自己点自己的项目是手动执行一次actions。是为了测试才设计这个功能的哦! 并不是不点星这个actions就不会运行。

  2. 最后,如果觉得好用,请给我点个star哦!

问题

  1. 修改频率 自己修改actions的配置文件即可。时间请自行百度cron表达式。
  2. 后台地址会不会暴露 不会的
  3. 没有效果 请确保你的第五步成功添加了网址,如果没有添加也会定时执行actions的动作而不会报错。可以在详情里查看是否监控的你的地址。正常情况下会如下图所以,多个网址会依次排列。如果没有填写网址则会默认访问作者的博客。

最后

既然用上了valine,那么我想再次安利下我魔改的valine-admin哦!

项目地址:https://github.com/sviptzk/Valine-Admin-Server

教程地址:https://www.antmoe.com/posts/2380732b/index.html

相较于原版的优势如下:

微信提醒(基于方糖公众号)

QQ提醒(基于QMSG)

一套很漂亮的邮件模板(基于以为大佬的魔改)

一个漂亮的后台页面(基于懒人大佬)

适配国际版的时区问题

更多特性正在研发!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 应对LeanCloud对于处理性能的限制

    最近一直想如何才能统计资源分享页面里的资源的下载次数,由于是直接放的资源链接,即点击即可获取,所以没有所谓的拦截页面进行统计,同时作为静态博客也几乎没有带数据存...

    ZONGLYN
  • 优雅解决按钮”重复点击“问题

    简单点,使用一个lock标记,在请求发出时上锁,上锁后就不可以再发请求,可以在请求结束后解锁:

    coder_koala
  • 使用Leancloud实现React Native App的消息推送(Push Notification)- Android篇

    在上一篇文章 中我们详细讲解了用Leancloud实现iOS消息推送的流程,今天本文将继续讲解实现Android的消息推送。

    MudOnTire
  • 使用个人公众号或IOS快捷指令发「动态」到hexo博客

    来自Hexo建站群群主大佬的巨作,可以满足随时随地免登录通过微信公众号来发表动态。

    Ant丶
  • 如何优雅的解决群友的Python问题?

    这个问题来源于自己Python交流群中的一个问题,如下图所示,需要计算每列中各值的出现次数,然后组成一个新的表。

    罗罗攀
  • Android 必知必会 - 极简版 Leancloud 短信验证码功能

    使用 LeanCloud 的 REST API 来自定义短信验证码相关功能,不再需要臃肿的 SDK 。

    他叫自己MR.张
  • 剑指 Firebase ,云开发—— 腾讯云的小 B 战略能行么?

    小程序推出云开发已经有一段时间了,我自己也已经深度的体验了小程序云开发,自此,写下一篇文章来谈一谈我眼中的云开发。

    白宦成
  • 解决dubbo导致tomcat无法优雅shutdown的问题

    jeremyxu
  • Taro 小程序开发大型实战(八):尝鲜 LeanCloud Serverless 云服务

    在上两篇文章中,我们讲解了使用微信小程序云作为我们的小程序后台,然后我们跑通了我们的注册登录、创建帖子、获取帖子列表、获取帖子详情的全栈流程,如果只想了解微信小...

    一只图雀

扫码关注云+社区

领取腾讯云代金券