<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mutong_wu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mutong_wu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mutong_wu]]></copyright><item><title><![CDATA[rpm打包python程序流程详解---centos6]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/104006775</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/104006775</guid><author>mutong_wu</author><pubDate>Thu, 16 Jan 2020 16:16:34 +0800</pubDate><description><![CDATA[要使用rpm将可执行程序打包为XXXX.rpm的文件，可以在centos中一键安装python程序。
默认认为大家知道rpm，若不清楚请自行百度，这里不再讲解。
废话不多说，直接上过程
全过程最好使用root用户
第一步----安装rpmbuild：

安装完成后，查看/root/rpmbuild/目录下，是否存在BUILD、BUILDROOT、RPMS、SOURCES、SPECS、SRPMS目录...]]></description><category></category></item><item><title><![CDATA[计算机从按下电源键到出现桌面是怎样的过程（linux）]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/100142523</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/100142523</guid><author>mutong_wu</author><pubDate>Thu, 29 Aug 2019 17:26:30 +0800</pubDate><description><![CDATA[转载：https://blog.youkuaiyun.com/tzy3013218117/article/details/51605582
开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。
启动第一步–加载BIOS
当你打开计算机电源，计算机会首先加载BIOS信息，BIOS信息是如此的重要，以至于计算机必须在最开始...]]></description><category></category></item><item><title><![CDATA[locust测试框架测试rabbirmq性能案例]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/89374677</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/89374677</guid><author>mutong_wu</author><pubDate>Thu, 18 Apr 2019 11:15:15 +0800</pubDate><description><![CDATA[locust测试框架默认为测试http请求，具体详细信息可参考其官方文档：
https://docs.locust.io/en/stable/what-is-locust.html
本片博客主要讲解locust测试自定义工具，以测试rabbitmq为例，话不多说上代码：
若读者还不清楚rabbitmq的工作机制，可参考我的另一篇博客，讲解rabbitmq的实现过程。
#!/usr/bin/env ...]]></description><category></category></item><item><title><![CDATA[python实现数据库连接池]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/89311607</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/89311607</guid><author>mutong_wu</author><pubDate>Mon, 15 Apr 2019 14:40:41 +0800</pubDate><description><![CDATA[以下python代码实现了一个简单的数据库连接池，以sqlite3为例
class Pool(object):
    """一个数据库连接池"""

    def __init__(self, max_active=5, max_wait=None, init_size=0, db_type="SQLite3", **config):
        self.__freeConns = Qu...]]></description><category></category></item><item><title><![CDATA[linux常用命令]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/89248610</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/89248610</guid><author>mutong_wu</author><pubDate>Fri, 12 Apr 2019 17:40:13 +0800</pubDate><description><![CDATA[该文档记录了一些常用的linux命令
ls 查看目录
which    python3    查看python命令的路径
cd    目录，切换到指定的目录
ip    address    查看本机的ip地址
ping  ip    尝试ping 目标机的ip，是否连接
pwd    显示当前目录
tar  -zxvf    xxx.tar    解压*.tar.gz 压缩文件
man 命令  ...]]></description><category></category></item><item><title><![CDATA[rabbitmq实现过程及其代码详解]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/82702732</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/82702732</guid><author>mutong_wu</author><pubDate>Fri, 14 Sep 2018 14:45:04 +0800</pubDate><description><![CDATA[首先先上一个rabbitmq的工作示意图，这种情况是rabbitmq最简单的一种通信，之后有时间会上多exchange之间的消息交互的文章，也欢迎大家一起学习，一起讨论。



代码实现：

客户端client1（发送端）

import uuid
from time import time, sleep
import traceback
import pika

import threading...]]></description><category></category></item><item><title><![CDATA[inspect--python自检查模块]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/82258532</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/82258532</guid><author>mutong_wu</author><pubDate>Fri, 31 Aug 2018 16:34:58 +0800</pubDate><description><![CDATA[官方文档：https://docs.python.org/2/library/inspect.html

该inspect模块提供了一些有用的函数来帮助获取有关活动对象的信息，例如模块，类，方法，函数，回溯，框架对象和代码对象。例如，它可以帮助您检查类的内容，检索方法的源代码，提取和格式化函数的参数列表，或获取显示详细回溯所需的所有信息。 
这个模块提供了四种主要的服务：类型检查，获取源代码，检查...]]></description><category></category></item><item><title><![CDATA[装饰器--装饰器类]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/82221889</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/82221889</guid><author>mutong_wu</author><pubDate>Thu, 30 Aug 2018 15:14:18 +0800</pubDate><description><![CDATA[装饰器的作用：

简单来说，可以把装饰器理解为一个包装函数的函数，它一般将传入的函数或者是类做一定的处理，返回修改之后的对象。 
所以我们能够在不修改原函数的基础上，在执行原函数前后执行别的代码，比较常用的场景有日志插入，事物处理等

我们知道，在python中函数也是被视为对象的，可以作为参数传递，那么假如把计算机耗时的独立为一个单独的函数，然后把需要计算耗时的函数都不用修改自己的代码了

普通...]]></description><category></category></item><item><title><![CDATA[Celery分布式任务队列框架--基于flask实现]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/82156466</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/82156466</guid><author>mutong_wu</author><pubDate>Tue, 28 Aug 2018 23:46:35 +0800</pubDate><description><![CDATA[
使用Celery的方法 
Celery是分布式的任务队列

特点： 简单、灵活、高可用

1) 安装Celery

pip install celery

2) 安装 redis 
redis可以使用list结构，提供消息队列的功能

3）创建Celery对象并指定broker代理路径 
broker 格式： redis://[:password@]host:port/db




    ap...]]></description><category></category></item><item><title><![CDATA[使用socket套接字实现TCP聊天系统demo]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/82120574</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/82120574</guid><author>mutong_wu</author><pubDate>Mon, 27 Aug 2018 23:03:47 +0800</pubDate><description><![CDATA[服务器代码



# coding:utf-8
import socket
from threading import Thread,Lock
import time


class BBSServer:
    def __init__(self,port):
        self.port = port
        self.clients = []
        self.lock...]]></description><category></category></item><item><title><![CDATA[python的正则表达式模块--re]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/82120488</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/82120488</guid><author>mutong_wu</author><pubDate>Mon, 27 Aug 2018 22:55:56 +0800</pubDate><description><![CDATA[      import re

            语法：
                re.match(pattern, str,flag)
                参数：match：表示只从字符串的开始处开始匹配，如果没有匹配上则返回None，匹配上返回一个match对象，可以使用match对象.group（）函数取到匹配成功的字符串。
                   ...]]></description><category></category></item><item><title><![CDATA[Scrapy--post请求和模拟登录--start_requests(self)]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/82083128</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/82083128</guid><author>mutong_wu</author><pubDate>Sun, 26 Aug 2018 18:49:06 +0800</pubDate><description><![CDATA[1.Request和Response 
    1）scrapy.Request参数 
            url    #指定请求路径 
            callback    #指定解析回调函数 
            meta       # meta 可以实现在spider之间的数据传送 
                           # 主要实现request和re...]]></description><category></category></item><item><title><![CDATA[itemPipeline的执行调度详解]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/82083095</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/82083095</guid><author>mutong_wu</author><pubDate>Sun, 26 Aug 2018 18:44:39 +0800</pubDate><description><![CDATA[该篇博客主要是讲解scrapy框架中的itemPipeline中item对象的调用顺序问题，以下为代码部分，解释在下图中。

import os

import scrapy
from scrapy.pipelines.images import ImagesPipeline

from xiaohua import settings


class DBPipeline(object):
   ...]]></description><category></category></item><item><title><![CDATA[mysql数据库常用存储引擎的区别]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/82053768</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/82053768</guid><author>mutong_wu</author><pubDate>Sat, 25 Aug 2018 17:57:31 +0800</pubDate><description><![CDATA[InnoDB：支持事务处理，支持外键，支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高（比如银行），要求实现并发控制（比如售票），那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库，也可以选择InnoDB，因为支持事务的提交（commit）和回滚（rollback）。  
MyISAM：插入数据快，空间和内存使用比较低。如果表主要是用于插入新记录和读出记录，那么选择M...]]></description><category></category></item><item><title><![CDATA[psutil---采集操作系统的基本性能信息]]></title><link>https://blog.youkuaiyun.com/mutong_wu/article/details/82053410</link><guid>https://blog.youkuaiyun.com/mutong_wu/article/details/82053410</guid><author>mutong_wu</author><pubDate>Sat, 25 Aug 2018 17:24:30 +0800</pubDate><description><![CDATA[采集系统的基本性能信息包括CPU、内存、磁盘、网络等，可以完整描述当前系统的运行状态及质量。psutil模块已经封装了这些方法，用户可以根据自身的应用场景，调用相应的方法来满足需求，非常简单实用。

(1)内存信息 
Linux系统的内存利用率信息涉及total（内存总数）、used（已使用的内存数）、free（空闲内存数）、buffers（缓冲使用数）、cache（缓存使用数）、swap（交换分...]]></description><category></category></item></channel></rss>