redmine自动发送邮件

大家好:

      R队最近接到一个任务,要每个月定时给指定的用户发送一封邮件,乘机研究了下redmine的定时任务,这里就给小伙伴们分享一下。

       R队用的是rufus-scheduler定时任务。rufus-scheduler一共有五种类型定时任务:in, at, every, interval and cron,具体怎么用且听R队慢慢道来。。。

         

一. in、at类型定时任务

           

  1. in:设置在一段时间后执行
  2.   require 'rufus-scheduler'
      scheduler = Rufus::Scheduler.new
      scheduler.at ''2018/01/25' do
        puts "2018年1月25日执行定时任务"
      end

  3. at:在某一时间执行
  4.   require 'rufus-scheduler'
      scheduler = Rufus::Scheduler.new
      scheduler.at ''2018/01/25' do
        puts "2018年1月25日执行定时任务"
      end


二. every、interval、cron类型定时任务

          

  1. every和interval比较相似,都是设置在固定的间隔时间内重复执行,区别是every计算两次触发间隔时间,而interval计算的则是本次触发结束到下次触发开始的时间。
    every类型:

      require 'rufus-scheduler'
      scheduler.every '3h' do
        puts "每隔3小时执行一次"
      end

    interval类型:

      require 'rufus-scheduler'
      scheduler.interval '2h' do
        puts "每隔2小时执行一次"
      end

  2. corn:corn定时任务比起every和interval更加灵活,可以更加精确的设置定时器的触发时机。

      require 'rufus-scheduler'
      scheduler.cron '00 09 * * *' do
        puts "每天上午9点执行一次"
      end


三. 定时任务开发实例

           使用corn定时任务调用发送邮件的方法实现每月22号自动发送文档提醒邮件功能,具体实现代码如下:

require 'rubygems'
  require 'rufus-scheduler'
  require 'Mailer'
  scheduler = Rufus::Scheduler.new
#设置定时任务为每月22号10点发送
  scheduler.cron '00 10 22 * *' do 
#执行定时任务时调用Mailer中的deliver_mail方法
    Mailer.deliver_mail
  end





猜你喜欢

转载自blog.csdn.net/weixin_42463677/article/details/80986721