计费系统的故障保险?

时间:2013-02-04 17:10:39

标签: ruby-on-rails billing

我目前有一个结算系统,每晚脚本会检查从脚本运行之日起一个月过期的订阅,例如:

 Subscription.where(:expires => (Date.today + 30.days)).find_each do |sub|
  unless sub.month_reminder_sent
    reminder.total += 1
    reminder.subscriptions << sub
    BillingMailer.monthly_reminder(sub.user).deliver
    sub.month_reminder_sent = true
  end

我还有另一套在到期前一周运行。如果未续订,则Subs会自动过期(我只是检查sub.expiry_date是否尚未通过以检查子是否处于活动状态。)

如果服务器出现故障,我需要哪些意外情况?或者脚本无法运行或失败? (因此缺少一些记录。)

上述甚至是计费的最佳方式吗?或者我不必要地担心,以上就足够了?

1 个答案:

答案 0 :(得分:0)

在您的模型(即processed_date)中添加另一个日期列,您需要在检查期间更新该列,然后向您的脚本添加一个附加条件,该条件将处理所有过期记录+之前未处理过的记录。如果服务器关闭或脚本未正确执行 - 您将在下次处理错过的记录。还要考虑一些报告,即:处理的记录数,先前运行处理的记录数等。