当前位置: 首页>>代码示例>>Python>>正文


Python StrictRedis.brpop方法代码示例

本文整理汇总了Python中redis.StrictRedis.brpop方法的典型用法代码示例。如果您正苦于以下问题:Python StrictRedis.brpop方法的具体用法?Python StrictRedis.brpop怎么用?Python StrictRedis.brpop使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在redis.StrictRedis的用法示例。


在下文中一共展示了StrictRedis.brpop方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: main

# 需要导入模块: from redis import StrictRedis [as 别名]
# 或者: from redis.StrictRedis import brpop [as 别名]
def main():
    logging.basicConfig(level=logging.INFO)
    r = StrictRedis()
    while True:
        logging.info("Waiting for a screenshot...")
        # block if no screenshots
        r.brpop('pending_screenshot_blocked_list')[1]
        # get a pending screenshot
        url = r.spop('pending_screenshots')

        if url:
            pipeline = r.pipeline()
            pipeline.get('pending_screenshot_{}'.format(url))
            pipeline.delete('pending_screenshot_{}'.format(url))
            filename, _ = pipeline.execute()

            logging.info("Taking screenshot of {} to {}".format(url, filename))

            screenshot_path = os.path.join('/Users/dhumbert/Code/Projects/Misc/clementia/public/user/screenshots', filename)
            subprocess.Popen(['/usr/local/bin/phantomjs', 'screenshot.js', url, screenshot_path], stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()
开发者ID:dhumbert,项目名称:pythropod,代码行数:22,代码来源:screenshot.py

示例2: RedisQueue

# 需要导入模块: from redis import StrictRedis [as 别名]
# 或者: from redis.StrictRedis import brpop [as 别名]
class RedisQueue(object):
    _cli = None
    _connection_parameters = dict()
    _queue = None

    logger = getLogger()

    def __init__(self, **kwargs):
        self._queue = kwargs.pop('queue', None)
        self._connection_parameters.update(kwargs)

    def connect(self, **kwargs):
        if self._cli and not kwargs:
            return self

        self._queue = kwargs.pop('queue') if kwargs.get('queue') else self._queue
        self._connection_parameters.update(kwargs)

        if not self._connection_parameters:
            raise QueueConnectionError

        self._cli = StrictRedis(**self._connection_parameters)
        return self

    def put(self, message, **kwargs):
        self.connect() if not self._cli else None
        queue = kwargs.pop('queue') if kwargs.get('queue') else self._queue
        publisher = kwargs.pop('publisher') if kwargs.get('publisher') else 'default'

        pipe = self._cli.pipeline()
        return pipe.lpush(queue, dumps(message)).publish(publisher, queue).execute()

    def get(self, **kwargs):
        self.connect() if not self._cli else None
        queue = kwargs.pop('queue') if kwargs.get('queue') else self._queue
        timeout = kwargs.pop('timeout') if isinstance(kwargs.get('timeout'), int) else 1

        try:
            return loads(self._cli.brpop(queue, timeout)[1])
        except TypeError:
            return None
        except ValueError:
            return None

    def length(self, queue=None):
        self.connect() if not self._cli else None
        queue = queue if queue else self._queue

        return self._cli.llen('{0}'.format(queue))

    @property
    def queue(self):
        return self._queue

    @queue.setter
    def queue(self, value):
        self._queue = value

    @queue.deleter
    def queue(self):
        self._queue = None
开发者ID:snakeego,项目名称:pyactors,代码行数:63,代码来源:redismq.py


注:本文中的redis.StrictRedis.brpop方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。