• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Still_Walking

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

rails中实现定时任务的之sidetiq

在rails中通过sidekiq和sidetiq两个gem实现定时任务。

环境:ubuntu14.4,ruby2.1.5, rails4.2

sidetip 依赖于sidekiq,所以在Gemfile里要添加sidekiq。

一、新一个rais项目:rails new schedule_job --skip-bundle

      进入项目文件夹: cd schedule_job

  打开Gemfile文件:vim Gemfile

  把source 'https://rubygems.org'改为source 'https://ruby.taobao.org'。

  在文件里加入:gem 'sidekiq',gem 'sidetiq'

  然后运行:bundle install

  安装redis-server: sudo apt-get install redis-server

  redis-cli进入redis,运行ping

  PONG说明安装成功。

二、新测试文件:

  在app/jobs文件夹下产生文件,新建定时任务类:MySchedule

  vim my_schedule.rb,修改为:

  class MySchedule
    include Sidekiq::Worker
    include Sidetiq::Schedulable

    recurrence { daily }

    def perform
      puts "sidetiq 测试"
    end
  end

   保存退出。

  在config/application.rb里面添加: config.active_job.queue_adapter = :sidekiq

三、运行sidekiq,会出现如下图:

   这个是到午夜执行的任务。

四、测试:

  修改my_schedule.rb文件为:

  class MySchedule
    include Sidekiq::Worker
    include Sidetiq::Schedulable

    recurrence do
      minutely(1)
    end

    def perform
      puts "sidetiq 测试"
    end
  end

  改为每一分钟执行一次。

  执行sidekiq命令,会出现如图:

 

  运行成功。

 

 

posted on 2016-07-17 20:21  limanxian  阅读(772)  评论(2)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3