0
收藏
评论

云开发同时发送多个模板消息

云开发发送多个模板消息解决方案

这段时间做项目用到了云开发,以及模板消息发送,其中有个需求是当助力完成时,需要给发起助力的以及帮助助力的人发送模板消息,因为之前没接触过云开发,所有写的过程中遇到了诸多问题,首先要感谢一下社区染柒老张cc, o0o往后余生 谢谢他们提供的思路,下面分享一下过程中遇到的问题及解决方案:

方案1建立一个模板任务集合task,里面记录需要发送模板任务的信息(包括openid  formid  template_id  send_time 等等),然后写一个定时函数执行,定时函数每次执行时,把需要发送的任务取出来,发送模板消息,

结果:消息发不出去,

原因:定时函数不支持云调用

方案2:既然云函数不支持云调用那么就在帮助助力的云函数中处理模板消息。当用户帮助助力时,这时候助力刚好够了,然后就给发起人以及参与人发消息,

第一次尝试:

由于sendMsg未加关键字await ,所有结果消息仍然没发出去,原因:发送模板消息需要耗时,可能模板消息尚在发送中,云函数已经结束了

第二次尝试:


消息发送成功,一切万事大吉?NO,现在还会存在一个问题,当最后一个助力人帮好友助力的时候,他帮助助力后,该助力就会完成了,就需要给所有参与人发送模板消息了,发送模板消息是一个比较耗时的操作,况且这时候发送的还不止一个消息,如果一直等着模板消息发送完成的时候才把助力结果返回,那么最后一次助力请求要耗费很长一段时间,用户体验上是很不好的,所以产生了第三个方案

方案3:帮助助力逻辑不变,只是把发送模板消息单独写在一个函数中,当小程序端用户帮助助力得到结果时,如果这次帮助助力使得助力完成了,那么就调用一下发送模板消息的方法发送模板消息




最后一次编辑于  08-30  (未经腾讯允许,不得转载)
复制链接赞 0收藏投诉评论

12 个评论

  • 侯衍超
    侯衍超
    08-30

    如果一次性发10000条模板消息,经常会出现异常,这种情况有解决方案吗?

    08-30
    赞同
    回复 1
    • Charb
      Charb
      08-30
      报什么异常呢?如果异常只是跟同时发送太多模板消息有关的话,你可以尝试一下发送一定条数(比如100条)休息一下,然后再接着发
      08-30
      回复
  • 侯衍超
    侯衍超
    08-30

    云开发在使用过程中发现个问题,如果设置定时器或者用promise,云函数执行一定时间后会自动终止

    08-30
    赞同
    回复 1
    • Charb
      Charb
      08-30
      这个问题我还没遇到过呢,回调的方式可以不?或者把这10000条消息平分到每个用户如何,每个用户进入小程序的时候触发一下发送消息的方法,每次发几条
      08-30
      回复
  • 假装在上海
    假装在上海
    08-30

    楼主您好,我也在研究云开发发送模板消息。云函数如何主动给用户发送模板消息呢 ?能否留个wx请教下

    08-30
    赞同
    回复 7
    • Charb
      Charb
      08-30
      云函数主动发送模板消息的话需要在云函数中添加定时触发器吧,然而添加了定时触发器之后就不支持云调用了,所以这问题暂时还是没法解决诶,你可以看一下这个帖子“https://developers.weixin.qq.com/community/develop/doc/0006a81d7dc8a0911c68d3be35f400?highLine=%25E5%25AE%259A%25E6%2597%25B6%25E5%2587%25BD%25E6%2595%25B0%25E4%25BA%2591%25E8%25B0%2583%25E7%2594%25A8”
      08-30
      回复
    • Charb
      Charb
      08-30
      wx:Miss1610935575
      08-30
      回复
    • 假装在上海
      假装在上海
      08-30回复Charb
      谢谢。我试一下
      08-30
      回复
    • Charb
      Charb
      08-30回复假装在上海
      云函数主动给用户发送消息,暂时还是实现不了的诶
      08-30
      回复
    • 假装在上海
      假装在上海
      08-30回复Charb
      心塞塞~~~
      08-30
      回复
    查看更多(2)