zoukankan      html  css  js  c++  java
  • python redis搭建队列服务

    # -*- coding:utf-8 -*-

    import redis

    # from redis_queue
    r = redis.Redis(host='127.0.0.1', port=6379, password='liang')


    class RedisQueue(object):
    def __init__(self, name, namespace='queue'):
    # redis的默认参数为:host='localhost', port=6379, db=0, 其中db为定义redis database的数量
    self.__db = redis.Redis(host='127.0.0.1', port=6379, password='liang',db=0) # 链接数据库
    self.key = '%s:%s' % (namespace, name)

    def qsize(self):
    return self.__db.llen(self.key) # 返回队列里面list内元素的数量

    def put(self, item):
    self.__db.rpush(self.key, item) # 添加新元素到队列最右方

    def get_wait(self, timeout=None):
    # 返回队列第一个元素,如果为空则等待至有元素被加入队列(超时时间阈值为timeout,如果为None则一直等待)
    item = self.__db.blpop(self.key, timeout=timeout)
    # if item:
    # item = item[1] # 返回值为一个tuple
    return item

    def get_nowait(self):
    # 直接返回队列第一个元素,如果队列为空返回的是None
    item = self.__db.lpop(self.key)
    return item

    入队列
    # -*- coding:utf-8 -*-
    from redis_queue import RedisQueue
    import time

    q = RedisQueue('rq') # 新建队列名为rq
    for i in range(5):
    q.put(i)
    print "input.py: data {} enqueue {}".format(i, time.strftime("%c"))
    # time.sleep(1)


    print q.qsize()



    出队列
    from redis_queue import RedisQueue
    import time

    q = RedisQueue('rq')
    while 1:
    result = q.get_wait()
    # if not result:
    # break
    # print "output.py: data {} out of queue {}".format(result, time.strftime("%c"))
    # time.sleep(2)
    print result









  • 相关阅读:
    Tensorflow 学习
    几种常见损失函数
    两人比赛先选后选谁获胜系列的动态规划问题
    LeetCode 全解(bug free 训练)
    局部敏感哈希LSH
    Annoy解析
    MCMC例子
    TinyBERT简单note
    ALBERT简单note
    求根号2, 网易的一道面试题
  • 原文地址:https://www.cnblogs.com/siconglove/p/10573290.html
Copyright © 2011-2022 走看看