現在、スクリプトの実行日から 1 か月で有効期限が切れるサブスクリプションを夜間スクリプトがチェックする課金システムを使用しています。たとえば、次のようになります。
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
そして、有効期限の 1 週間前に実行する別のセットがあります。更新されていない場合、サブスクは自動的に期限切れになります (サブスクsub.expiry_date
がアクティブかどうかを確認するために、まだ経過していないことを確認するだけです)。
サーバーがダウンした場合に備えて、どのような不測の事態に備える必要がありますか? または、スクリプトが実行されないか失敗しますか? (そのため、一部のレコードが欠落しています。)
上記は、請求を行うための最良の方法でもありますか? それとも、私は不必要に心配していて、上記で十分でしょうか?