设计一个后台程序,抽取大量数据按照规则生成短信并发送,如何设计才能保证短信不重复和系统的稳定?

需求如下:

现有一个或者多个数据库,保存着各种用户数据,例如合同信息,时间,金额等等。

现要开发一个后台系统,定时从指定数据库中按照一定规则抽取数据(提供数据库连接和sql),将数据按照短信模板(给定)动态生成短信,然后调用短信接口发送至用户。

模板例如提醒还款,节假日祝福,合同激活之类。

需求并不复杂,但是数据量较大,现有十几个模板,每天预计生成短信十万左右。

我们想法是,一个模板搭配一个定时任务,循环抽取数据然后生成短信最后发送。

但是需要注意的是,短信万万不能重复,万一在生成、发送过程中服务异常终止,重启后不能重复发送短信。

针对此要求,需要将生成的数据存入数据库,发送的时候检查是否已经发送过了,符合条件再发送。

技术选型是springboot,后台任务使用quartz。十几个模板也就是说会有十几个线程,十几个线程频繁写入数据库,发送的时候频繁读取数据库,我们感觉会有隐患。所有特别上来问问大家意见,大家有什么好建议?

阅读 2.6k
1 个回答

用数据库没问题。。10几个并发数据库没问题。。。如果用redis更快,纯内存的。

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