如何高速高效的发布微信模版消息、客户消息?

我们平台基于微信公众号,总粉丝数近3千万。现在在发送模版消息、客服消息时受到限制。不知道有什么更好的解决方案。
我们目前比较屎的方案:
1、建立发送任务,发送模版消息或客服消息。
2、两张队列表,一个模版消息队列表,一个客服消息队列表。当发送任务提交后,由mysql的事件来定时将某条任务分到3千万粉丝,模版消息任务进模版消息队列表,客服消息进客服消息队列表。
类似下面的结构

任务ID OPENID XXX1 XXX2 XXX3 XXX4 1
34rwfrwewesefsf dd gfgg ddd ddd

也就是会产生3千万条模版消息队列表或客服消息队列表

3、linux crontab做定时任务,20分钟执行一次shell脚本

 shell脚本每次100到200并发调用 后台的发送服务。每个发送服务会先批量更新500条为一组发送,这样500个发送服务调用的数据互不干扰
 

现在大概20分钟大概能发送100万左右。本身基于数据库,所以对数据库压力也大。由于发送服务是调用微信的相关接口,而500条一组都是for循环发送,所以速度上并不快。无法定时时间发送完成。往往都是进了队列,很久后才发送到之前的任务

有没有更好的方案供改造

阅读 3.1k
1 个回答

你可以看成队列,就是一个商城,既然商城的货销售不出去,那就是证明消费者不够,消费者不够,那就增加消费者.将队列分批.分成多个队列来执行.就是多个消费者.这样,消费者够了.然后就是数据库的问题.是否可以考虑从数据库中脱离出来.利用redis的队列.然后通过redis来同步数据库.这样是不是就减轻了数据库的压力.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题