在Ruby上使用sidekiq实现定时任务

背景介绍:本实现基于sidekiq已经正常安装并且已经在项目里使用了,只记录一下怎么启动运行。代码采用Ruby实现,功能是在前端调用Jenkins job,具体的Jenkins调用方法不做深入描述。

具体可以参考Home · mperham/sidekiq Wiki · GitHubicon-default.png?t=M276https://github.com/mperham/sidekiq/wiki

功能展示:前端状态会随着调用的Jenkins job的状态自动更改

 代码实现:

#1. config/initializers/sidekiq.rb
Sidekiq.configure_server do |config|
  config.on(:startup) do
    require 'sidekiq_cron'
    SidekiqCron.new.run
  end
end

#2. app/lib/sidekiq_cron.rb 可以写你的实现逻辑,比如通过ID获得Jenkins job等
def run
  Thread.new do
  loop do
      begin
        if Rails.application.config.sidekiq[:task_execution] #检查一下你的配置环境里有没有打开这个开关,详见3
           TasksAutostartWorker.perform_async
           sleep 1
        end
      end
    rescue => exception
      Exceptions::ErrorReporter.notify(exception)
    end
  end
end

#3.config/environments/development.rb
config.sidekiq = {
  task_execution:     true
}

#4.在你的server上启动sidekiq,由于你用到了Jenkins,所以要注意启动它,类似的还有 sidekiq -q high -q default -q critical.
sidekiq -q high -q jenkins

#5. 状态切换使用了https://github.com/aasm/aasm, e.g.
event :started do
  transitions from: [:prepared, :success, :error], to: :started
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值