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

ruby rails + grape + sidekiq 项目实践 正在学习ruby+rails的一套,备忘探索过程; 阅读详情

背景介绍:本实现基于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

sidekiq:Ruby的简单,高效的后台处理 Sidekiq Ruby的简单,高效的后台处理。 Sidekiq使用线程在同一进程中同时处理许多作业。 它不需要Rails,但将与Rails紧密集成,使后台处理变得简单。 性能 版 潜伏 为1万个工作创建垃圾 是时候处理10万个工作了 通量 Ruby Sidekiq 6.0.2 3毫秒 156兆字节 14.0秒 7100职位/秒 核磁共振2.6.3 Sidekiq 6.0.0 3毫秒 156兆字节 19秒 5200职位/秒 核磁共振2.6.3 Sidekiq 4.0.0 10毫秒 151兆字节 22秒 4500个/秒 Sidekiq 3.5.1 22毫秒 1257兆字节 125秒 800个工作/秒 回复1.25.2 -- -- 420秒 240职位/秒 延迟工作4.1.1 -- -- 465秒 215个工作/秒 该基准可以在bin/sidekiqload找到,并假设Redis网络延迟为1ms。 要求 Redis:4.0+ Ruby:MRI 2.5+或JRuby 9.2+。 Sidekiq 6.0支持Rails 5.0+,但不需要。 安装 gem inst 立即下载

相关推荐

ruby中执行周期性任务(定时任务)的3种方法

1.前言      无论是用ruby做系统管理,还是用rails做web开发,都可能遇到周期性任务,它们按照一定时间周期(1小时,2天……)持续地触发。在ruby中,我认为一次性任务使用sidekiq来完成是非常方便的,而周期性的任务就需要用到whenever,sidetiq,clockwork等等gem了。 2.whenever 首先,whenever是基于linux的cron服务的,所以,在windows平台上没有直接的方法使用该gem。whenever严格来说应该算一个cron的翻译器,将ruby代码翻译为cron脚本,从而将周期性任务转交给cron实际去完成。对于精通cron的shel

Sidekiq深度解析:Ruby高性能后台作业处理框架

Sidekiq深度解析:Ruby高性能后台作业处理框架 Sidekiq是Ruby生态中广受欢迎的高性能后台作业处理框架,采用多线程架构和Redis作为消息队列,为异步任务处理提供卓越的性能和可靠性。本文深度解析Sidekiq的核心架构、Redis集成机制和性能优势,涵盖其多线程处理模型、灵活的队列管理、完善的错误处理机制以及丰富的监控功能。通过详细的架构分析和性能测试数据,展示Sidekiq如何在...

gitblog_00029的博客 727

新手避坑指南:HT7036计量芯片SPI读取电压的完整流程(从复位到校准)

本文详细介绍了HT7036计量芯片的SPI读取电压完整流程,从硬件准备到校准设置,重点解析了复位引脚处理、SPI通信配置、芯片初始化及数据处理等关键步骤。针对常见问题如晶振焊接、SPI时序错误等提供实用解决方案,帮助开发者高效完成电压测量与校准。

weixin_30070339的博客 326

Sidekiq:Ruby高性能后台作业处理框架全面解析

Sidekiq:Ruby高性能后台作业处理框架全面解析 【免费下载链接】sidekiq 项目地址: https://gitcode.com/gh_mirrors/sid/sidekiq ...

gitblog_00031的博客 833

别再羡慕专业版!用这个批处理脚本,一键给Win11家庭版装上官方沙盒

本文详细介绍了如何通过批处理脚本在Windows 11家庭版上安装官方Windows沙盒(Windows Sandbox),无需复杂操作即可享受专业版功能。脚本自动激活系统内置组件,提供安全隔离的虚拟化环境,适用于软件测试、安全浏览等场景。

weixin_26757925的博客 497

5分钟搞懂双目相机标定:从棋盘格到3D点云的完整流程(附Python代码)

本文详细介绍了双目相机标定的完整流程,从棋盘格准备到3D点云生成,涵盖单目标定、双目标定、立体校正、视差计算等关键步骤。通过Python代码示例,帮助读者快速掌握双目立体视觉技术,实现高精度的3D重建。特别适合机器人导航、工业检测等应用场景。

weixin_29100399的博客 588

Sidekiq高级特性:中间件与扩展开发

Sidekiq高级特性:中间件与扩展开发 Sidekiq的中间件机制是其架构中最强大和灵活的特性之一,借鉴了Rack中间件的设计理念,允许开发者在作业处理的生命周期中插入自定义逻辑。中间件分为客户端中间件和服务器中间件两种类型,分别处理作业入队和执行过程中的不同阶段,采用链式调用模式,每个中间件都是独立的处理单元,按照配置顺序依次执行,提供了极高的灵活性。 Sidekiq中间件机制原理与自定义开发...

gitblog_01030的博客 696

27-eMMC电路设计

eMMC硬件电路设计

weixin_66510961的博客 4008

15分钟掌握CorridorKey:解锁AI绿幕抠像的终极艺术

你是否曾为那些发丝边缘的透明像素而彻夜难眠?当运动模糊与绿幕背景融合时,传统抠像工具往往只能给出生硬的二值化遮罩,完全丢失了真实合成所需的微妙半透明细节。这正是影视制作中最令人沮丧的痛点——完美的前景颜色被绿幕污染,而你却无能为力。 CorridorKey正是为解决这一核心难题而生。它不只是另一个AI抠像工具,而是一个真正的"色彩分离器"。想象一下,你的绿幕素材中每个像素都像是被绿色颜料污染的画

gitblog_00858的博客 1055

从BSCAN到BAP:深度解析Tessent MBIST逻辑的协同工作机制与设计考量

本文深入解析了Tessent MBIST逻辑中BSCAN Interface、Logic Group Def、Controller与BAP模块的协同工作机制。文章以一条测试指令的完整路径为例,详细阐述了数据流与控制流如何跨模块、跨时钟域协同工作,并重点探讨了MBIST BAP在协议转换与流量管理中的核心桥梁作用,为芯片内建自测试的集成与调试提供了关键的设计考量和实战技巧。

kappa的博客 482

电子元器件-接口电路篇:RS-232、RS485/422、I2C、SPI、USB、网口

以上规定说明了RS-232C 标准对逻辑电平的定义。对于数据(信息码):逻辑“1”的传输的电平为-3V~-15V,逻辑“0”传输的电平为+3V~+15V;对于控制信号;接通状态(ON)即信号有效的电平为+3V~+15V,断开状态(OFF)即信号无效的电平为-3V~-15V,也就是当传输电平的绝对值大于3V 时,电路可以有效地检查出来;

qq_60226558的博客 890

ReadCat跨平台构建指南:一次开发,多平台发布的终极教程

想要为你的小说阅读器应用实现"一次开发,多平台发布"吗?ReadCat作为一款基于Electron的免费开源小说阅读器,提供了完整的跨平台构建方案,让你轻松为Windows、macOS和Linux用户提供统一体验。本指南将详细介绍ReadCat的跨平台构建流程,帮助你掌握现代桌面应用开发的核心技术。 ## 📦 技术架构概览 ReadCat采用了现代化的前端技术栈,实现了真正的跨平台开发:

gitblog_00419的博客 494

Open3D 使用CPD算法对点云配准【2025最新版】

Coherent Point Drift相干点漂移算法实现点云配准(python代码)博客长期更新,本文最近更新时间为:2025年2月2日。

点云侠的博客 8万+

终极Sidekiq-Cron指南:如何快速实现Ruby定时任务调度

Sidekiq-Cron是Sidekiq的一个调度插件,它能够让Ruby开发者轻松实现定时任务调度功能。通过使用cron表达式或自然语言,你可以精确地安排Sidekiq作业在指定时间运行,无需复杂的配置即可实现强大的定时任务管理。 ## 为什么选择Sidekiq-Cron? 在Ruby应用开发中,定时任务是许多项目的必备功能。Sidekiq-Cron作为Sidekiq的扩展,提供了以下核心优势

gitblog_00457的博客 819

基于Simulink的超级电容与锂电池混合储能协调控制仿真

摘要:本文介绍基于Simulink的光伏-混合储能系统(HESS)建模与仿真方法,通过超级电容和锂电池的协同控制实现功率平抑。系统采用直流耦合架构,利用一阶低通滤波法将总功率分解为低频(锂电池承担)和高频分量(超级电容承担),并设计SOC自平衡机制维持超级电容工作点。仿真结果表明,该方案可使锂电池电流波动降低62%,光伏功率波动率降至7.5%,有效延长电池寿命。文章详细展示了从主电路搭建、功率分配到闭环控制的完整实现步骤,为新能源系统储能优化提供实用参考。

amy_mhd的博客 136

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Ruby 定时任务 + Whenever+Sidekiq:动态扩缩容的协同配置与优化

创建一个简单的 worker 类,处理后台作业。

asdfdcdsc的博客 896

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Sidekiq Ruby后台作业处理的强大工具!

Sidekiq是Ruby生态中高效的后台作业处理工具,通过Redis存储和多线程架构提升性能。本文介绍了Sidekiq的安装配置、工作器创建、队列管理、错误处理等核心功能,并提供了生产环境部署建议。关键点包括:用perform_async执行后台任务、设置多级队列优先级、内置重试机制、Web监控界面配置,以及限流、批处理等高级用法。文章还强调了生产环境需注意监控、日志管理和Redis备份,帮助开发者构建稳定可靠的后台任务处理系统。

algosolver的博客 1228

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Ruby on Rails 使用Sidekiq实现多现场后台操作

资源: SidekiqSidekiq WikiSidekiq on GitHubCelluloidEpisode 271: ResqueEpisode 365: Thread-Safety (pro) terminal brew install redis redis-server /usr/local/etc/redis.conf bundle exec sidekiq

野草志 2260

Sidekiq-Cron入门教程:10分钟掌握定时任务配置

Sidekiq-Cron是一款强大的Sidekiq定时任务调度扩展,它能帮助Ruby开发者轻松实现任务的定时执行。无论是每日数据备份、定期报表生成还是定时消息推送,Sidekiq-Cron都能提供稳定可靠的定时任务管理能力,让你的应用自动化流程更加高效。 [![Sidekiq-Cron Logo](https://raw.gitcode.com/gh_mirrors/si/sidekiq-cro

gitblog_00663的博客 1094

如何快速掌握Sidekiq:Ruby后台任务处理的完整指南

Sidekiq是一个简单高效的Ruby后台处理工具,它利用Redis作为消息队列,帮助开发者轻松处理异步任务、定时任务和批量操作。无论是发送邮件、处理文件还是执行耗时计算,Sidekiq都能让你的Ruby应用保持响应迅速,提升用户体验。 ## 🚀 为什么选择Sidekiq? Sidekiq相比其他Ruby后台处理工具具有明显优势: - **高性能**:单线程每秒可处理数千个任务 - **低资

gitblog_00298的博客 1080

sidekiq redis_如何将Sidekiq和Redis添加到Ruby on Rails应用程序

sidekiq redis 介绍 (Introduction) When developing a Ruby on Rails application, you may find you have application tasks that should be performed asynchronously. Processing data, sending batch emails, or ...

418

解决 Ruby 定时任务过载:Whenever 动态扩缩容的实操技巧

使用 Whenever 定义任务调度,但将实际执行委托给异步队列(如 Sidekiq)。队列支持动态扩缩容:通过监控工具检测负载,自动增加或减少工作进程数(workers)。Whenever:设置 cron 任务,触发作业入队。Sidekiq:处理作业队列,支持横向扩展。监控与扩缩容:基于队列长度或资源使用率,动态调整 workers 数量。接下来,分步骤详解实操技巧,并提供完整代码示例。Whenever 用于生成 cron 调度,但任务本身应轻量——只触发异步作业,而非执行耗时逻辑。创建。

asfdsfgas的博客 707

Sidekiq-Status 安装与配置指南

Sidekiq-Status 安装与配置指南 1. 项目基础介绍 Sidekiq-Status 是一个开源项目,它为 Sidekiq 提供了任务状态跟踪功能。Sidekiq 是一个用于 Ruby 的异步任务处理库,它通过使用 Redis 作为消息队列,来异步执行后台任务。Sidekiq-Status 可以帮助你监控任务的执行状态,如排队、运行中、完成、失败或中断。该项目主要使用 Ruby 编程语言...

gitblog_00792的博客 901

Sidekiq配置与部署完全指南

Sidekiq配置与部署完全指南 本文全面解析Sidekiq配置文件结构、核心配置选项与最佳实践,涵盖多环境部署策略、容器化部署方案、监控告警体系构建以及高可用架构设计,帮助开发者构建稳定可靠的后台任务处理系统。 Sidekiq配置文件详解与最佳配置实践 Sidekiq作为Ruby生态中最受欢迎的后台作业处理框架,其配置文件提供了丰富的选项来优化性能、管理队列和处理各种工作负载。本文将深入解析Si...

gitblog_00017的博客 1110

sidekiq安装及使用

参考:https://github.com/mperham/sidekiq/wiki/Getting-Started https://wdxtub.com/2016/07/06/sidekiq-guide/ 使用sidekiq之前需要安装redis:参考redis安装 gem 'sidekiq' rails g sidekiq:worker Hard # will create a...

weixin_34314962的博客 1460

Sidekiq Superworker 使用指南

Sidekiq Superworker 使用指南 项目介绍 Sidekiq Superworker 是一个Ruby库,它允许开发者定义复杂的Sidekiq作业依赖图。此工具使得在后台处理任务时能够创建简单的或复杂的工人(workers)图形结构成为可能,支持串行和并行的工作配置。通过Sidekiq Superworker,你可以更加灵活地管理作业之间的依赖关系,确保作业按预期顺序执行。该项目适用...

gitblog_00695的博客 1066
上一篇: 在Ubuntu 18.04上安装配置VNC实现Spinach测试可视化
下一篇: 使用JenkinsApi::Client获取Folder下的job
haiyu柠檬
博客等级 码龄13年 89粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值