在我的 Rails 应用程序中,用户可以取消他们的订阅,这应该会触发一个函数来降级他们的帐户current_billing_period_end
(这个变量由支付提供商的 API 提供)。例如,用户在 4 月 12 日取消了订阅,但在 3 月 1 日之前订阅有效。因此premium
,该用户在数据库中的条目应设置为false
仅在 3 月 1 日。
我已经使用 Resque 和 Resque-Scheduler 实现了一个可行的解决方案,但现在想知道这是否有点矫枉过正?
我可以subscription_end_date
在取消订阅时为用户设置一个数据库条目并将其设置为current_billing_period_end
然后每当用户进行身份验证时我都会运行
if user.premium != false && user.subscription_end_date == Time.now.strftime("%Y-%m-%d")
user.premium = false
user.save
end
但是,这意味着每次用户进行身份验证时都运行该代码段/前端检查用户是否通过我的 API 登录。
我的问题是:实现该功能的更好方法是什么?Resque 解决方案似乎更干净,但我想知道对于我在这里想要实现的目标是否太多/征税。我以前从未与 Resque 合作过,如果这是我不必在生产中维护的另一件事,我会很高兴。