python redis 消息队列
生活随笔
收集整理的這篇文章主要介紹了
python redis 消息队列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
redis 安裝完成后,以下代碼可以直接運行
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Wed Sep 5 16:08:51 2018@author: luogan """import json import redisimport datetime import sys import json import multiprocessing import time import redis ### from datetime import date#以下代碼是向redis 發命令 QUEUE = "code" #redisPool = redis.ConnectionPool(host=config.get_redis_host(), port=6379, db=config.get_redis_db()) redisPool = redis.ConnectionPool(host='localhost', port=6379, db=8) client = redis.Redis(connection_pool=redisPool)def send_cmd(seaweed):json_cmd = json.dumps(seaweed, ensure_ascii=False)client.rpush(QUEUE, json_cmd)ll=list(range(100)) get_weekend('20180325')}) if __name__ == "__main__":for k in ll:send_cmd({"label":k,'timd':20160503,'timm':20170430})#以下代碼是向redis 取命令,并且采用多進程來實現計算 def func(a,b,c):print(a,b)def worker(pname):client = redis.Redis(connection_pool=redisPool)while True:try:cmd = client.lpop(QUEUE)except:cmd = Noneif cmd is None:returnelse:cmd = format_cmd(cmd)try:func( cmd["label"],cmd['timd'],cmd['timm'])#price_fix.update(cmd["city"], cmd["region"], cmd["name"])print(pname + ":", cmd, "計算成功")except Exception as ex:print(ex)print(pname + ":", cmd, "計算失敗")def format_cmd(cmd):return json.loads(cmd)if __name__ == "__main__":pro_num = 20pool = multiprocessing.Pool(processes=pro_num)for pid in range(1, pro_num):pid = "PROC" + str(pid).zfill(3)pool.apply_async(worker, (pid,))pool.close()pool.join()總結
以上是生活随笔為你收集整理的python redis 消息队列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 哈夫曼树构造
- 下一篇: python 读取txt