class IssueOverdue < ActiveRecord::Base
#缺陷到期后发送邮件提示
#只监听已经提交的未到期的缺陷，已过期的缺陷默认已经发过邮件通知，不再提醒。
  def self.mail_issue
    threads = []
    issues = Issue.where("done_ratio <> 100 and closed_on is null and due_date is not null")
    puts issues
    issues.each do |issue|
      thread = Thread.new do
        while true
          cur_issue = Issue.find issue.id
          if cur_issue.done_ratio == 100 || cur_issue.closed_on != nil
            break
          end
          if Time.now < Time.parse(cur_issue.due_date.to_s)
            #休眠一个小时。。。
            puts cur_issue.id.to_s
            sleep 5
          else
            #发邮件
            #puts "11" + issue.id.to_s
            #Mailer.issue_expire(issue).deliver
            recipients = issue.recipients
            recipients.each do |rec|

              Mailer.issue_edit(issue,rec).deliver
            end
            break
          end
        end
      end
      threads <<  thread
    end
    puts threads
    return threads
  end
end