随着互联网用户体验,和性能的要求,异步操作越来越凸显重要性。
所谓异步操作勉强理解为事件发生不在同一时间完成。结合一些自己用到的技术总结一下此类运用。
基于后台:
redis resque
Resque是这样解决这些问题的:
后台任务的角色划分
其实从上面的问题已经可以看出,只靠一个消息队列是无法解决所有问题的,需要新的角色介入。在Resque中,一个后台任务被抽象为由三种角色共同完成:
Job | 任务 : 一个Job就是一个需要在后台完成的任务,比如本文举例的发送邮件,就可以抽象为一个Job。在Resque中一个Job就是一个Class。
Queue | 队列 : 也就是上文的消息队列,在Resque中,队列则是由Redis实现的。Resque还提供了一个简单的队列管理器,可以实现将Job插入/取出队列等功能。
Worker | 执行者 : 负责从队列中取出Job并执行,可以以守护进程的方式运行在后台。
那么基于这个划分,一个后台任务在Resque下的基本流程是这样的:
将一个后台任务编写为一个独立的Class,这个Class就是一个Job。
在需要使用后台程序的地方,系统将Job Class的名称以及所需参数放入队列。
以命令行方式开启一个Worker,并通过参数指定Worker所需要处理的队列。
Worker作为守护进程运行,并且定时检查队列。
当队列中有Job时,Worker取出Job并运行,即实例化Job Class并执行Class中的方法。
至此就可以完整的运行完一个后台任务。
在Resque中,还有一个很重要的设计:一个Worker,可以处理一个队列,也可以处理很多个队列,并且可以通过增加Worker的进程/线程数来加快队列的执行速度。
更多详细见
http://www.cnblogs.com/youxin/p/3986580.html
python celery
celery和Resque的设计理念有很大不同,Resque可以理解为将sql实现在类代码中,celery则是直接将要执行的sql记录到数据库表中做调用。
rake+crontab+时间表字段
rufus-scheduler
基于数据库:oracle存储过程+job
分享到:
相关推荐
这里,`findAll`方法返回一个Promise,我们通过`.then`和`.catch`处理异步操作的结果。 2. **Python(asyncio + aiopg)** Python 3.5及以上版本引入了`asyncio`库,可以配合异步数据库库如aiopg来实现异步查询。...
NET 2.0对FTP操作实现汇总 FTP(File Transfer Protocol,文件传输协议)是一种常用的网络协议,用于在网络上进行文件传输。微软的.NET Framework 2.0提供了三个类,使得我们可以方便地对FTP服务器进行操作。下面...
异步发电机则没有独立的励磁绕组,其结构相对简单,操作便捷。然而,由于不能提供无功功率,异步发电机需要从电网中获取滞后的磁化电流,这限制了其并网条件,通常需要与同步发电机并联或者配备电容器。异步发电机...
1. **使用Deferred对象**:Twisted的 Deferred 是一个关键的抽象,它代表了一个未来的值,可以用来管理异步操作的生命周期和回调链。 2. **错误处理**:在异步环境中,错误处理至关重要。Twisted通过Deferred的错误...
本文汇总了在设计和 debug 过程中的常见问题和解决方案。 一、异步FIFO框图设计 异步FIFO框图是指在异步FIFO设计中,读取地址和用于空满判断的格雷码的生成逻辑框图。该框图是异步FIFO设计的核心部分,需要正确地...
计算机操作系统第四版期末复习知识点汇总附习题 计算机操作系统是计算机系统的核心组件之一,它管理计算机硬件资源,提供了一个抽象的计算机系统接口,帮助用户更方便地使用计算机系统。本文将对计算机操作系统第四...
Jquery zTree是一个基于JQuery实现的...最后,文章提到的《jQuery插件ztree使用汇总》专题中应该包含了更多关于ztree控件的使用方法、技巧和案例分析,这对于需要深入了解zTree应用的开发者来说是一个宝贵的学习资源。
并发是指多个任务可以同时执行,共享是指多个任务可以共享同一个资源,虚拟是指操作系统提供的虚拟环境,异步是指任务可以并发或并行地执行。 操作系统的发展历史可以分为实时操作系统、网络操作系统、分布式操作...
I/O模型有同步I/O、异步I/O、DMA(直接存储器访问)。设备驱动程序作为操作系统与硬件之间的桥梁,实现对设备的控制。 七、调度算法 调度是指决定哪个进程或线程应获得CPU执行权的过程。常见的调度算法有:抢占式...
`$q`服务提供了Promise API,可以更优雅地处理异步操作。通过链式调用`then`方法,我们可以确保每个请求按照指定的顺序执行: ```javascript var app = angular.module('app', []); app.controller('...
异步FIFO(First-In-First-Out)是数字系统中常用的一种存储结构,尤其是在FPGA(Field-Programmable Gate Array)设计中。它允许两个运行在不同时钟域的模块之间进行数据传输,解决了时钟域跨越的问题,提高了系统...
"计算机操作系统复习知识点汇总" 计算机操作系统是配置在计算机硬件上的一层软件,是对硬件系统的初次扩充。操作系统的定义、目的是:以便性、有效性、可扩充性和开放性。操作系统的作用可体现为:OS作为顾客与...
8. **数据聚合**:为了进一步减少数据库压力,可以采用数据聚合策略,比如定期汇总点赞计数,减少实时查询的频率。 9. **流量控制**:对于热点事件,需要进行流量控制以防止系统过载。可以使用令牌桶或漏桶算法来...
### 2021年异步转移模式宽带交换机行业人事部门使用表格汇总知识点解析 #### 一、异步转移模式宽带交换机行业发展概况 **背景介绍:** 近年来,随着信息技术的飞速发展,异步转移模式(ATM)宽带交换机作为网络...
* 操作系统的基本特征包括资源共享、操作的异步性、多道程序设计、实时性等。 二、操作系统的分类 * 按照系统结构可分为单块结构、层次结构、微内核结构等。 * 按照使用方式可分为批处理系统、分时系统、实时系统...
【标题】和【描述】提及的是2021年异步转移模式宽带交换机行业的行政部门表格协议汇总,这是一份详细记录了该行业在行政管理过程中使用的各类表格和协议的文档。【标签】中的“行政部门”和“表格协议”表明这份文档...
《2021年异步转移模式宽带交换机行业财务部门表格模板汇总》这份文档是针对特定行业——异步转移模式宽带交换机行业的财务管理工作提供的一系列标准化表格模板。这些模板旨在帮助财务部门高效地进行日常财务管理,...
教学目标包括使学生理解三相异步电动机的工作原理,掌握直接起动的电路设计与操作,学会分析启动过程中的电气参数变化,以及培养学生分析和解决电机运行中遇到问题的能力。 (5)重难点分析 教学重点在于解释三相...
本资料包针对操作系统考研复习提供了全面的知识点汇总,旨在帮助考生高效备考。以下是操作系统的一些关键知识点: 1. **操作系统定义与功能**:操作系统是管理计算机硬件与软件资源的系统软件,提供用户接口,协调...