Sha256: ca92e1c00403d8b3d552d4d8e55e9a1db58ee48081acf0da6d268e827b180705
Contents?: true
Size: 1.37 KB
Versions: 1
Compression:
Stored size: 1.37 KB
Contents
def puts! a, b='' puts "+++ +++ #{b}" puts a.inspect end namespace :office do desc 'schheduled email actions, rolling perform' task schs: :environment do while true do Sch.active.where({ :perform_at.lte => Time.now }).each do |sch| sch.update_attributes({ state: Sch::STATE_INACTIVE }) # send now ctx = Ctx.new({ email_template_id: sch.act.tmpl.id, lead_id: sch.lead.id, send_at: Time.now, }) ctx.save! # schedule next actions & update the action sch.act.ties.each do |tie| next_act = tie.next_email_action next_at = eval(tie.next_at_exe) next_sch = Sch.find_or_initialize_by({ lead_id: sch.lead_id, email_action_id: nxt.id, }) sch_nxt.perform_at = next_at sch_nxt.state = Sch::STATE_ACTIVE sch_nxt.save! end print '+' end # sleep 1.minute sleep 10.seconds print '.' end end desc "send emails" task email_worker: :environment do while true do ctxs = ::Ish::EmailContext.scheduled.unsent puts! ctxs.count, 'ctxs' ctxs.map do |ctx| IshManager::OfficeMailer.send_context_email( ctx[:id].to_s ).deliver_later print '.' end # sleep 1.minute sleep 10.seconds print '^' end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ish_manager-0.1.8.386 | lib/tasks/office_tasks.rake |