Chinaunix首页 | 论坛 | 博客
  • 博客访问: 961263
  • 博文数量: 335
  • 博客积分: 10287
  • 博客等级: 上将
  • 技术积分: 3300
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-08 15:29
文章分类

全部博文(335)

文章存档

2015年(4)

2014年(15)

2013年(17)

2012年(11)

2011年(12)

2010年(96)

2009年(27)

2008年(34)

2007年(43)

2006年(39)

2005年(37)

我的朋友

分类: C/C++

2011-03-07 15:13:29

使用memcacheq做异步队列,做个简单的生产者-消费者模型。生产者将数据写入mq中,消费者异步去队列中去取数据,进而进一步的消费处理数据。

Python

01#!/usr/bin/env python
02#-*- coding:utf8 -*-
03 
04import sys
05import time
06import random
07 
08import memcache
09 
10mc = memcache.Client(["%s:%s"%("127.0.0.1", "22202")])
11queue_name = "q1"
12def putter():
13    count = 0
14    while True:
15        data = "hello%d"%(count)
16        mc.set(queue_name, data)
17        print "put ", data
18        count += 1
19        time.sleep(random.randint(1, 10))
20 
21def process_data(data):
22    print "processing data :", data
23 
24def getter():
25    while True:
26        data = mc.get(queue_name)
27        if data:
28            process_data(data)
29        else:
30            print "no message, sleep for a while ..."
31            time.sleep(30)
32 
33if __name__ == "__main__":
34    if len(sys.argv) != 2:
35        print "Wrong arg numbers"
36    else:
37        cmd = sys.argv[1]
38        if cmd == "put": putter()
39        elif cmd == "get": getter()
40        else: print "wrong cmd"

在使用时,开两个终端模拟两个进程,在一个终端中运行

1python mqdemo.py put

来模拟生产者;另一个终端中运行

1python mqdemo.py get

模拟消费者。

阅读(518) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~