add by zhj: 如果用Python,那可以用celery,它是一个分布式任务队列,它的broker可以选择Rabbitmq/Redis/Mongodb等,celery通过Kombu这个library来调用Rabbitmq的接口。我们可以认为Kombu是把Rabbitmq进行了封装,使其更符合...
分类:
其他好文 时间:
2014-08-18 23:26:33
阅读次数:
496
前五行是系统整体的统计信息。第一行是任务队列信息,痛uptime命令的执行结果。{01:06:48当前时间up1:22系统运行时间,格式为时:分1user当前登录用户数loadaverage:0.06,0.60,0.48系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟。15分钟前到现在的平均值。}第二..
分类:
其他好文 时间:
2014-08-12 13:53:44
阅读次数:
223
进程的管理与调度
进程管理
进程描述符及任务结构
进程存放在叫做任务队列(tasklist)的双向循环链表中。链表中的每一项包含一个具体进程的所有信息,类型为task_struct,称为进程描述符(process descriptor),该结构定义在文件中。
Linux通过slab分配器分配task_struct结构,这样能达到对象复用和缓存着色(cache colorin...
分类:
系统相关 时间:
2014-08-09 13:29:07
阅读次数:
993
前言:有朋友问我,我那个任务队列是怎么实现,他的疑问其实主要是celery不支持多线程。先说说我那实现的方法,其实我的做法和celery、rq这样的框架很像的,都是把任务push到队列里面,然后pull取出任务而已,celery里面还可以取任务,我这个是通过传送uuid来实现的。朋友问cel..
分类:
编程语言 时间:
2014-07-28 00:44:00
阅读次数:
422
GCD(Grand Central Dispatch) : 牛逼的中枢调度器。苹果自带,纯C语言实现,提供了非常多且强大的函数,它可以提高代码的执行效率与多核的利用率。
一、GCD的基本使用
1、GCD中的两个核心概念
:
?任务: 执行什么任务.
?队列: 用来存放任务. (用来调度任务)
2、GCD使用的2个步骤:
?1.定制任务.
(确定想做的事情)
?2.将任务添加...
分类:
移动开发 时间:
2014-07-25 11:18:32
阅读次数:
310
线程池中的死锁情况
这次死锁发生在什么情况下呢?在最开始写线程池的时候,我设计了线程是可重用的,主要是通过Event信号实现,通过在每个线程核心工作代码执行完毕后会将自己归还到池中,然后等待Event信号。主线程会以循环超时阻塞的方式监视一个任务队列,当发现有任务时便会从线程池中取出一个线程,并设置它的任务和目标函数,然后去start或者resume,resume就是会设置Event信号让线程不再阻塞,这里,从池中取线程的方法_get和归还线程方法returnThread都已经加锁,_get和return...
分类:
编程语言 时间:
2014-07-23 17:15:01
阅读次数:
333
Celery最佳实践
orangleliu 翻译 原文点击查看
如果你的工作和 Django 相关, 并且有时候需要执行一些长时间的后台任务。可能你已经使用了某种任务队列,Celery就是Python(和Django)世界中时下解决类似问题最受欢迎的项目。
当在某些项目使用Celery作为任务队列之后,我总结了一些最佳实践,决定把它们些下来。然而,这里也有一些对自己应该做的却...
分类:
其他好文 时间:
2014-07-19 23:17:08
阅读次数:
276
出自:http://blog.csdn.net/tianmohust/article/details/9335243在我们的工作中,我们经常需要异步执行一些任务,下面介绍的这个可伸缩多线程队列,可满足我们的需求。 出自:http://www.codeproject.com/Articles/414....
分类:
编程语言 时间:
2014-07-19 21:36:50
阅读次数:
256
理解 Linux 条件变量1 简介当多个线程之间因为存在某种依赖关系,导致只有当某个条件存在时,才可以执行某个线程,此时条件变量(pthread_cond_t)可以派上用场。比如:例1: 当系统不忙(这是一个条件)时,执行扫描文件状态的线程。例2: 多个线程组成线程池,只有当任务队列中存在任务时,才用其中一个线程去执行这个任务。为避免惊群(thrundering herd),可以采用条件变量同步线...
分类:
系统相关 时间:
2014-07-08 19:02:10
阅读次数:
401
工作队列工作队列(又称:任务队列Task Queues)是为了避免等待一些占用大量资源、时间的操作,当我们把任务Task当做消息发送队列中,一个运行在后台的工作者worker进程就会取出任务然后处理。当有多个works,任务在它们之间共享创建任务创建任务的new_task.py#!/usr/bin/...
分类:
其他好文 时间:
2014-07-03 19:05:35
阅读次数:
241