2013-02-04 69 views
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 

我有另一組在本週到期前運行。如果他們沒有續訂,我會自動過期(我只是檢查sub.expiry_date還沒有通過檢查一個子是否激活)。

如果服務器出現故障,我需要採取哪些應急措施?或者腳本不能運行或失敗? (因此缺少一些記錄。)

以上即使是計費最好的方式嗎?還是我不必要地擔心,上述就足夠了?

回答

0

將另一個日期列添加到您的模型(即processed_date)中,您需要在檢查過程中更新它,然後向腳本添加一個附加條件,以處理所有過期記錄+這些未處理過的記錄。如果服務器關閉或腳本執行不正確 - 下次您將處理遺漏的記錄。還要考慮一些報告,即:處理的記錄數量,從前次處理中處理的記錄數量等。