37 lines
1.1 KiB
Ruby
37 lines
1.1 KiB
Ruby
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 |