作者:dabing(王甜甜)
valine 文档:https://valine.js.org/notify.html

github 地址:https://github.com/DesertsP/Valine-Admin

使用说明参考:https://github.com/zhaojun1998/Valine-Admin

为啥用这个呢?人官方推荐的,那肯定是比较适配的了。

img

使用这个 valine-admin 评论前提是你前面的评论系统已经正常使用,并且 leancloud 数据存储也配好了。

就只是添加一个邮件提醒的功能而已。

以上评论系统的怎么配?可以参考 valine 的官网文档,很详细:https://valine.js.org/quickstart.html

# 在 LeanCloud 部署 Valine-Admin

进入 LeanCloud 对应的 Valine 应用里去。

img

# 1. 部署 git 项目

点击 云引擎 -> WEB -> 部署 ,按 github 所说,在部署项目中填写代码库:

https://github.com/zhaojun1998/Valine-Admin

手动部署,再点击部署按钮即可。

但是作者这个代码 node.js 是 6 版本的,版本不对,使用作者的可能会部署失败。这个后面展示。

img

问题:会报如下这样的错

img

由于 node.js 版本过低导致。

解决

  1. 把作者的项目 fork 到自己仓库下,修改 package.json 的 node 版本为 12.x 即可
  2. 当然也可以直接使用我的地址:https://github.com/dabing85/Valine-Admin

img

# 2. 邮件环境变量配置

点击 云引擎 -> WEB -> 设置 ,添加环境变量,添加变量如下:

img

我添加的都是必填,再加一个域名的参数:

  • SITE_NAME : 网站名称。

  • SITE_URL : 网站地址。

  • SMTP_USER : SMTP 服务用户名,一般为邮箱地址。

  • SMTP_PASS : SMTP 密码,一般为授权码,而不是邮箱的登陆密码,请自行查询对应邮件服务商的获取方式。QQ 邮箱获取授权码 网易邮箱获取授权码

  • SMTP_SERVICE : 邮件服务提供商,支持 QQ163126GmailYahoo 、 … ,全部支持请参考 : Nodemailer Supported services。 — 如这里没有你使用的邮件提供商,请查看自定义邮件服务器

  • SENDER_NAME: 寄件人名称。

  • SENDER_EMAIL : 发件人邮箱

也有其他可选参数:

  • ADMIN_URL : [建议] Web 主机二级域名(云引擎域名),用于自动唤醒
  • BLOGGER_EMAIL : [可选] 博主通知收件地址,默认使用 SENDER_EMAIL
  • AKISMET_KEY : [可选] Akismet Key 用于垃圾评论检测,设为 MANUAL_REVIEW 开启人工审核,留空不使用反垃圾

如果没绑定域名的话,可以不填 ADMIN_URL 这个参数,也能用,只不过 leancloud 每天会有休眠 6 小时,没有请求 30 分钟就会休眠了,绑定域名是为了能做定时任务自动唤醒。(下面会做展示)

img

完成上面两步其实都已经可以使用了。不记得要不要重启了。自己测试测试。

# 3. LeanCloud 休眠策略

参考:LeanCloud 休眠策略

  1. 绑定域名
  2. 添加上配置项(环境变量)
  3. 配置定时任务
  1. 绑定域名

同样在 云引擎 -> WEB -> 设置 ,绑定域名。

据说以前是有 leancloud 有提供以前共享的二级域名,但是现在取消了,我这个是自己在腾讯云租的一年,618 租的,才十几块钱一年。

编一个三级域名,为了好区分我直接写 leancloud。 然后去腾讯云解析域名,记录类型是 CNAME,记录值填 leancloud 推荐的那个节点,即我下面框起来的那个。

img

解析完之后等等刷新一下,就显示已绑定状态了。

img

  1. 添加上配置项(环境变量)

ADMIN_URLhttps://leancloud.dabing.cool/

可以看我上边的截图

  1. 配置定时任务

点击 定时任务 -> 创建定时任务

image-20220905143608005

self_wake ,cron 表达式: 0 */30 0-16 * * ? ,表示每天 0 点到 16 点每半小时唤醒一次

resend_mails , cron 表达式: 0 0 0 * * ? ,表示检查 24 小时以前有无漏发邮件,有则重发 再到部署出重启部署即可。

img

成功唤醒的状态码是 200

img

# 补充

配置了定时任务之后当天我没发现什么问题,过两天我发现日志里有报错信息:

"error":" 因流控原因,通过定时任务唤醒体验版实例失败,建议升级至标准版云引擎实例避免休眠

也有成功的时候,大部分都是从 7 点开始就是唤醒失败的。

image-20220905150734160

百度了一下:

大家可以参考 [优雅解决 LeanCloud 流控问题](优雅解决 LeanCloud 流控问题 - 腾讯云开发者社区 - 腾讯云 (tencent.com)), 或者再百度看看别的。我不折腾了

preload

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Dabing-He 微信支付

微信支付