定期付款的系统设计模式

时间:2020-01-24 18:15:06

标签: design-patterns

我想问一下设计可在到期后自动续订用户的系统的一些常见且广泛采用的模式。

我专门问如何触发该操作?

假设有一个系统,它具有执行所有逻辑的RenewSubscription方法。该方法应在用户订阅到期后立即触发。

我看到实现它的唯一方法是让某种后台任务(控制台应用程序或lambda)每N秒(或每分钟)查询数据库并检查是否有过期的续订订阅。

是否可以在不每隔几秒钟查询一次数据库的情况下实现?

1 个答案:

答案 0 :(得分:1)

有必要在某个时候查询数据库以获取具有过期订阅的用户,因此在任何情况下都需要某种cron作业。至于应多久触发一次IMO后台任务,取决于您在到期和续订之间可接受的阈值(秒,分钟,小时)。还应考虑RenewSubscription方法的性能,要更新的用户数量以及运行数据库查询所花费的时间。理想情况下,cron作业应该在下一个作业开始之前完成,并且如果不可能,则需要考虑可以并行运行多少个进程,而不会出现内存/ CPU限制。我相信您必须运行一些基准测试才能找到适合您的用例的平衡。