58 - celery使用

课堂笔记

2. redis操作

pip3 install redis

redis可以认为是内存中的大字典:
{
"k1": "v1",
"k2": [11,11,22,22,33],
"k3": {11,22,33},
"k4": {
kk1:vv1,
kk2:vv2,
},
"k5": {("alex",4),("李杰",5),("土鳖",2)},
}


基本操作:
列表:
# 字符串
# conn.set('k1','v1',ex=5)
# conn.get('k1')
# 列表,可以当消息队列来使用。
# conn.lpush('users','alex')
# conn.rpush('users','eric')
# conn.lpop('users',)
# conn.rpop('users')
# result = conn.blpop('users',timeout=20)
# result = conn.brpop('users',timeout=20)

# conn.lpush('users','alex')
# conn.rpush('users','eric')
# conn.rpush('users','eric1')
# conn.rpush('users','eric2')
# conn.rpush('users','eric3')
# conn.rpush('users','eric4')
# conn.rpush('users','eric5')
# conn.rpush('users','eric6')

def list_scan_iter(name):
start = 0
while True:
vals = conn.lrange(name, start, start+3)
start = start + 4
if not vals:
return
for val in vals:
yield val


result = list_scan_iter('users')
for item in result:
print(item)

3. celery 
Python开发的一个模块,用于完成一个分布式任务调度。

pip3 install celery


4. saltstack

- fabric,paramiko
- ansible,paramiko
- saltstack,python开发
- puppet,ruby开发

连接:
salt-master


salt-minion

编写state:
sync_file:
file.recurse:
- name: /data/new/{{pillar['appname']}} # 要同步到客户端目录
- source: salt://s7code/files/{{pillar['appname']}}
- user: root
- makedirs: True
- file_mode: 644
- dir_mode: 755


run_online_script:
cmd.run:
- name: /usr/bin/python /data/script/code_publisher.py {{pillar['appname']}}

salt '*' state.sls s7code pillar='{"appname": "luffy"}'





总结:

git
- 协同开发使用
- github
redis
- redis基于列表可以实现消息队列
- list如果特别大,通过生成器实现(**)。

celery
- 基本操作
- 定时
- 多目录结构
- 结合Flask实现celery

saltstack

作业:
1. saltstack的state
2. 发布动作
3. 通过SQLAlchemy放到数据库



celery_tasks和demo2是一套

参考:https://www.cnblogs.com/wupeiqi/articles/8796552.html

 

为了使报错好看

 

posted @ 2018-05-25 16:16  番茄土豆西红柿  阅读(174)  评论(0)    收藏  举报
TOP