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. 统计方法运行时间【Java实现】

      接口Command:定义命令的执行操作 package common; public interface Command { // 运行方法 void run(); } CommandRuntime ...

    2. Python tricks(7) -- new-style class的__slots__属性

      __slots__是在python 2.2开始引入的一个新特性, 我们来看一下官方给出的解释. This class variable can be assigned a string, iterab ...

    3. mysql的数据类型和字符集

      MySQL的数据类型 MySQL数据库支持的数据类型主要有以下几种: 整型 浮点型 字符 BLOB型 枚举和集合类型 JSON类型(MySQL5.7新增加的支持) 整型 整数类型是数据库中最基本的数据 ...

    4. Python Web学习笔记之TCP的3次握手与4次挥手过程

      前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务.TCP提供一种面向连接的.可靠的字节流服务. 面向连接意味着两个使用TCP的应用(通常是一个客户和一个服 ...

    5. P3008 [USACO11JAN]道路和飞机Roads and Planes

      P3008 [USACO11JAN]道路和飞机Roads and Planes Dijkstra+Tarjan 因为题目有特殊限制所以不用担心负权的问题 但是朴素的Dijkstra就算用堆优化,也显然 ...

    6. java反射之-性能优化

      在最近的计划中,打算看看在不使用google protobuf的情况下,在原有的采用jackson作为json序列化工具的基础上,是否可以实现进一步的性能优化.主要是针对list的情况. 测试的时候选 ...

    7. 09: TemplateView , ListView ,DetailView三种常用类视图用法

      1.1 视图混合介绍 1.Mixin和View的职能区分 1. Mixin提供数据,View提供模板和渲染,所以一般get_context_data在Mixin中,get(),post(),head( ...

    8. 20145101《Java程序设计》第9周学习总结

      20145101<Java程序设计>第9周学习总结 教材学习内容总结 第十六章 整合数据库 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增 ...

    9. 20145309李昊《网络对抗技术》实验9 web安全基础实践

      本实验在同学帮助下完成 一.实验准备 1.0 实验目标和内容 Web前端HTML.能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. Web前 ...

    10. 20145332 《网络攻防》 逆向与Bof实验

      20145332 <网络攻防>逆向与Bof实验 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用 ...