Tag: python
Python 异步任务模块 Celery 快速上手 (二)
Python判断图片格式并获取MIME
获取图片mime这种问题网上一搜就是mimetypes
的guess()
, 这种根据后缀判断文件类型的方式就有点曲线救国了,根据Ficapy介绍,unix上一般大多数的文件在开头都会有一串magic number(幻数),但不是所有文件都包含,根据幻数可以较准确判断出文件的类型 unix下允许使用后缀来标识文件类型,但实际上文件标不标后缀都是由开发者决定的
Python 异步任务模块 Celery 快速上手 (一)
基本使用
第一步,建立一个celery类的对象,传入一个名称(后续需要这个名称来执行异步任务), 配置消息代理,这里配置了本地redis服务器的第0个数据库
"""
tasks.py
"""
from celery import Celery
celery_app = Celery('name', broker='redis://localhost:6379/0')
那这样就可以通过task
装饰器来建立一个简单的异步任务了
"""
tasks.py
"""
import time
@celery_app.task
def task_name(someone):
time.sleep(5)
print('hello {}'.format(someone))
建立好异步任务之后,可以在外部调用这个任务
from tasks import task_name
# 任务用过delay方法可以传入参数,方法执行后并不会阻塞后续代码
task_name.delay('task')
print('start running!')
# 也可以不立即执行,可以先用s方法传入参数
task_name.s('task')
print('start running!')
task_name.delay()
对了执行celery命令celery -A name worker
, 执行后注册的任务会在console里面输出
数据持久化
想要delay的函数返回的结果就需要在建立celery对象中加入一个backend
参数
"""
tasks.py
"""
from celery import Celery
celery_app = Celery('name', broker='redis://localhost:6379/0', backend='redis://localhost:6379/1')
建立一个任务带返回数据功能的
"""
tasks.py
"""
import time
@celery_app.task
def say_hello(to):
time.sleep(5)
return "Hello {}".format(to)
通过ready()
方法可以获取任务是否完成,而get()
可以获取任务返回结果
from tasks import say_hello
import time
t = say_hello('hello')
while True:
r = t.ready()
if not r:
print("task done? {}".format(r))
continue
print('task done: {}'.format(t.get()))
break
下一篇详细讲讲Celery的Task类
Python迭代器&生成器
迭代器
迭代器学习的关键点在于区分iterator
与iterable
, iterator
代表一个对象是一个迭代器(可迭代对象), 而iterable
代表该对象可以被迭代 Continue reading Python迭代器&生成器
Python多线程&多进程&线程池&进程池
初探Django
熟悉MVC结构的话挺容易上手的
Python基于socket\subprocess编写远程命令执行
简介写socket通讯过程
服务端
1. 初始化socket对象
2. 绑定IP/PORT
3. 监听端口
4. 等待客户链接
1. 等待消息
2. 发送消息
5. 关闭客户端链接
客户端
1. 初始化socket对象
2. 链接服务端
1. 发送消息
2. 等待消息
3. 关闭与服务器链接
Python整理异常处理
- Python异常处理
try/except语句一般情况下都是用来捕捉程序无法预知的异常
python 面向对象内建方法
python面向对象getattr\setattr\delattr\hasattr
getattr\setattr\delattr\hasattr
hasattr
hasattr用反射机制来判断对象是否含有某属性
python内建函数isinstance和issubclass
Python类的封装
Python遍历目录查找文件内容
以前要修改wordpress模板上的具体内容时,总是把模板文件夹下载下来,通过sublime text打开文件夹,才能具体的查找到相关内容
当然linux通过grep也可以实现,但还是达不到自己想要的效果
于是用所学的pythoon生成器写了一个小程序
该程序能够查找文件夹下各个文件,并返回关键词所在行号、该行内容、文件所在地址 Continue reading Python遍历目录查找文件内容
python3通过生成器实现动态获取日志
tail -f命令能够显示文件的实时动态更新,方便日志跟踪,今天用python3写了一个类似的小程序 Continue reading python3通过生成器实现动态获取日志