Sidekiq (8700✨)

git :  https://github.com/mperham/sidekiq

https://www.cnblogs.com/richard1234/p/3829074.html  (一篇文章,讲的比较清楚)

https://wdxtub.com/2016/07/06/sidekiq-guide/   (wiki的翻译)

进阶精华贴:https://ruby-china.org/topics/31470;  https://ruby-china.org/topics/36825

Sidekiq 是Ruby社区最受欢迎的多线程的异步任务框架之一,几乎是Rails项目标配。

非常优秀的后台任务处理软件,其依赖Redis实现队列任务的增加,重试和调度等。

在Web请求中,有很多任务是可以放到后台执行的,比如用户购买商品付款成功后,就可以直接向用户购买成功,相应的短信发送,物流通知等等就可以放到后台任务去做,不用在用户购买的同时立即执行,这些任务也称作异步任务。

基本概念:

Job

在 Sidekiq 中的 Job 指的是某一个任务的一次执行, 注意与我们通常意义上说 “一个 Job” 指的是一类 Job.(一类任务)

Worker

因为 Sidekiq 是使用 Celluoid 来完成其多线程的控制的, 而 Celluoid 是 Ruby 中的多线程模式 Actor 模式的实现, 所以在 Sidekiq 中的 Worker 我们以拟人的方式去理解. 我拥有一个工人, 不过有一点要区分的是这些 Worker 都是按照”操作手册”在执行任务, 所以他不会被限制在某一类任务上.

Queue

队列的意义在于区分任务并且让任务排队, Sidekiq 中将每一类的任务使用一个 Queue 来区分开.


按照视频步骤操作失败。 谷歌中文的帖子,最后成功。

  1. 根据教材安装gem 'sidekiq'
  2. 进行相关配置,下载的rails模版已经在sidekiq.rb中配置,并在routs.rb中加入   monitoring监控。
  3. rails g sidekiq:worker Hard
  4. 然后打开在方法perform(参数)内设置如puts("xxx")等等,
  5. 在控制器action,models中创建一个job。job是指某一个任务的一次执行,通常我们说一个job

    Sidekiq(部分基础,有几个使用案例和active_job的用法)的更多相关文章

    1. 【CC2530入门教程-增强版】基础技能综合实训案例(基础版)-上位机源码

      [CC2530入门教程-增强版]基础技能综合实训案例(基础版)-上位机源码 广东职业技术学院  欧浩源 一.需求分析 按照指定参数打开串口,与测控终端建立数据传输通道,并根据应用要求实现程序逻辑,具体 ...

    2. Java基础-处理json字符串解析案例

      Java基础-处理json字符串解析案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 作为一名开发人员,想必大家或多或少都有接触到XML文件,XML全称为“extensible ...

    3. Java基础-零拷贝技术应用案例

      Java基础-零拷贝技术应用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 零拷贝技术在Hadoop生态圈中很多组件得到应用,典型的比如kafka组件,它就很成功的应用了零拷贝 ...

    4. C#基础练习(事件登陆案例)

      Form1的后台代码: namespace _08事件登陆案例 {     public partial class Form1 : Form     {         public Form1() ...

    5. java基础学习日志--Stirng内存案例

      案例一: public class test1 { public static void mb_swap(String Str1,String Str2) { String temp=Str1; St ...

    6. Java基础:String类详解,案例用户登录实现,案例手机号截取实现,案例敏感词替换实现;StringBuilder类详解,StringBuilder和String相互转换,附练习案例.

      1.API 1.1 API概述-帮助文档的使用 什么是API API (Application Programming Interface) :应用程序编程接口 java中的API 指的就是 JDK ...

    7. 零基础学习java------31---------共享单车案例,html快速入门(常见标签,get和post的区别)

       一 .单车案例 二. HTML快速入门 红字表示要掌握的内容 超文本标记语言,此处的标记指的即是关键字,其用处是用来写页面(展示数据). 语法:(1)./当前目录:../ 父级目录 (2)注释符号: ...

    8. 二十一、Java基础--------IO流之综合案例分析

      前三篇文章详细介绍了IO流体系所涉及的重点内容,为了帮助理解与学习,本片博客主要是分析一个与IO操作相关的题目. 例1:在我们观看视频时经常要关注的就是视频的时间长度,在学习了IO操作之后,就可以自己 ...

    9. html form <label>标签基础语法结构与使用案例教程(转载)

      在表单布局中会遇到label标签的使用,label没有任何样式效果,有触发对应表单控件功能.比如我们点击单选按钮或多选框前文字对应选项就能被选中,这个就是对文字加了<label>标签实现. ...

    随机推荐

    1. Python: 在序列上执行聚集函数(比如sum() , min() , max() )

      在序列上执行聚集函数(比如sum() , min() , max() ) eg1: >>>nums = [1, 2, 3, 4, 5]>>>s = sum(x * ...

    2. Js基础知识7-Es6新增对象Map和set数据结构

      前言 JavaScript中对象的本质是键值对的集合,ES5中的数据结构,主要是用Array和Object,但是键只能是字符串.为了弥补这种缺憾,ES6带来了一种新的数据结构Map. Map也是键值对 ...

    3. 业余时间正在开发一个REACT小视频站点

      业余时间正在开发一个REACT小视频站点,数据接口来源于吐槽弹幕网(C站),供C站用户移动端的观看.因现存在移动网络屏蔽C站的关系,最好使用非移动网络进行观看.否则会比较卡,影响用户体验. 站点测试入 ...

    4. Python入门之软件开发目录规范

      本章重点: 理解在开发人标准软件时,如何布局项目目录结构,以及注意开发规范的重要性. 一.为什么要有好的目录结构 二.目录组织的方式 三.关于README的内容 四.关于requirements.tx ...

    5. php多进程结合Linux利器split命令实现把大文件分批高效处理

      有时候会遇到这样的需求,比如log日志文件,这个文件很大,甚至上百M,需要把所有的日志拿来做统计,这时候我们如果用单进程来处理,效率会很慢.如果我们想要快速完成这项需求,我们可以利用Linux的一个利 ...

    6. curl 7.52.1 for Windows

      curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.多种Linux发行版中,并且有DOS和Win32.Win64下的移植版本. 这个工具对于在运维.持续集成和批处理场 ...

    7. phpMyAdmin本地文件包含漏洞

      4 phpMyAdmin本地文件包含漏洞 4.1 摘要 4.1.1 漏洞简介 phpMyAdmin是一个web端通用MySQL管理工具,上述版本在/libraries/gis/pma_gis_fact ...

    8. 【转】各种消息下wParam及lParam值的含义

      转载自:http://bbs.fishc.com/forum.php?mod=viewthread&tid=52668#lastpost 01.WM_PAINT消息 LOWORD(lParam ...

    9. JAVA I/O(二)文件NIO

      一.Unix五种I/O模型 读取和写入文件I/O操作都是调用操作系统提高的接口,对磁盘I/O来说,一般是将数据从磁盘拷贝到内核空间,然后从内核空间拷贝到用户空间.为了减小I/O时间,一般内核空间存在高 ...

    10. Linux多线程--使用信号量同步线程【转】

      本文转载自:http://blog.csdn.net/ljianhui/article/details/10813469 信号量.同步这些名词在进程间通信时就已经说过,在这里它们的意思是相同的,只不过 ...