自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 云服务器部署k8s集群

在两台不同厂商的云服务器上部署k8s集群,遇到一些问题。在此进行下总结。首先要网络能够互通,我是通过添加虚拟网卡的方式lsmod | grep ip_vs #检查是否有开启#临时开启ip_vsdo echo $i;done#永久开启确认内核是否有tun模块如果找不到[nux-misc]enabled=0gpgcheck=1tap0 是虚拟网卡名字172.168.1.1 是ip地址查看然后建立虚拟IP,如果有节点不是公网内网分离则不需要。

2023-09-15 17:28:28 341

转载 python类的绑定方法与非绑定方法

一、绑定方法 首先我们明确一个知识点,凡是类中的方法或函数,默认情况下都是绑定给对象使用的。下面,我们通过实例,来慢慢解析绑定方法的应用。class People: def __init__(self,name,age): self.name = name self.age = age def talk(self): passp =

2017-09-12 10:45:03 1355

翻译 Flask和Celery的使用

显示更新状态和结果The above example is overly simple, the background job is started and then the application forgets about it. Most Celery tutorials for web development end right there, 事实上对于很多应用来说,有必要监控它的后台任

2017-09-12 10:33:33 3979 3

转载 python绑定方法

首先要明确的一点是:绑定方法和非绑定方法在创建时没有任何区别,同一个方法,既可以为绑定方法,也可以为非绑定方法,一切不同都只在调用时的手法上有所区别。 绑定方法即该方法绑定类的一个实例上,必须将 self 作为第一个参数传入,而这个过程是由 python 自动完成的。所以可以通过实例名.方法名(参数列表)来进行调用。 而非绑定方法因为不绑定到实例上,所以在引用时是通过类来进行引用。自然的,该过程

2017-08-28 11:27:43 736

转载 Python工厂函数和内建函数

所谓工厂函数就是指这些内建函数都是类对象, 当你调用它们时,实际上是创建了一个类实例。工厂函数: int(),long(),float(),complex(),bool() str(),unicode(),basestring() list(),tuple():生成列表或者元组 type():查看类型 dict():生成一个字典 set(): 生产可变集合 frozenset():

2017-08-28 10:50:06 1532

转载 Python多态

多态 类具有继承关系,并且子类类型可以向上转型看做父类类型,如果我们从 Person 派生出 Student和Teacher ,并都写了一个 whoAmI() 方法:class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender

2017-08-28 10:42:47 348

原创 Python实现快速排序

# 使用递归快速排序算法排序一个数组或列表def quickSort( theSeq ): n = len( theSeq ) recQuickSort( theSeq, 0, n-1 )# 使用虚拟片段递归实现 def recQuickSort( theSeq, first, last ): # 检查基本情况 if first >= last : return el

2017-08-24 15:31:06 338

原创 Python实现归并排序

def mergeSort(seq): if len(seq)<=1: return seq mid=int(len(seq)/2) Lpart=mergeSort(seq[:mid]) Rpart=mergeSort(seq[mid:]) return merge(Lpart,Rpart) def merge(Lpa

2017-08-24 11:29:05 397

原创 算法导论学习笔记----动态规划

动态规划与分治方法相似

2017-08-21 23:43:00 325

翻译 Celery使用快速入门

应用(Application)首先需要一个Celery实例。可以把它叫Celery应用,或直接简略为app。你想要在celery里做的,像创建任务,管理工人(workers),都要以这个实例为入口点。其它模块一定有导入它的可能。在这个教程中,我们让一切都包含在一个模块中,但对于一个更大的项目,你得创建分开的模块。创建一个文件 tasks.py:from celery import Celeryapp

2017-08-21 11:29:21 1079

翻译 Celery任务队列

什么是任务队列(Task Queue)?使用任务队列作为分发任务的机制。 一个任务队列的输入是一组被称为任务的工作单元。专用的工人会持续监听任务队列来等待完成新的工作。 Celery通过消息进行通信,通常使用中间人作为客户端和工人(workers)间的媒介。为了初始化一项任务,客户端会添加一条消息到队列中,然后中间人传递这条消息给一个worker。一个Celery系统可以包含多个工人和中间人,解

2017-08-17 15:11:58 440

翻译 Celery消息队列----配置定时任务

Introduction celery beat is a scheduler; It kicks off tasks at regular intervals, that are then executed by available worker nodes in the cluster.By default the entries are taken from the beat_schedul

2017-08-14 17:45:41 8259

翻译 Celery消息队列----路由任务

基础自动路由最简单的路由方式是使用 task_create_missing_queues 设置 (默认是开启的)。这个设置开启后, 一个在task_queues中还未定义的命名队列会被自动创建。这让简单的路由任务变得很容易。 假如你有两台服务器x 和 y,来处理常规(regular)任务,一个服务器z只处理feed相关的任务。你可以使用这样的配置:Say you have two servers,

2017-08-10 14:20:29 5012

原创 Python相关链接

Python相关资料的链接

2017-08-02 15:00:21 276

原创 Python数据结构----最大堆

import array as Arrayclass MaxHeap: def __init__(self,maxSize): self._elements = Array(maxSize) self._count = 0 def __len__( self ): return self._count def capacity( self ): return

2017-07-30 23:54:53 1667 1

原创 Python多线程和多进程

如果你已经在Python领域混了很久,那么你肯定遇到过GIL这个词,而且知道它多么讨厌。GIL是指Global Interpreter Lock,当CPython每次要执行字节码时都要先申请这个锁。但是,这意味着,如果试图通过多线程扩展应用程序,将总是被这个全局锁所限制。 所以尽管多线程看上去是一个理想的解决方案,但实际上我看到大多数应用程序都很难获取到150%的CPU利用率,也就是使用1

2017-07-30 18:05:13 503

原创 Python装饰器----类型转换

Type Switching Thus far, the discussion in this chapter has only considered cases in which a decorator is expected to decorate a function and provide a function, or when a decorator is expected to

2017-06-21 07:50:42 471

原创 Python装饰器----应用示例(二)

日志记录Logging执行时包装代码的最后一个例子是一个通用的日志记录函数。 考虑下面引起函数调用的装饰器, 运行时间, 结果会被记录:import functoolsimport loggingimport timedef logged(method): """Cause the decorated method to be run and its results logge

2017-06-20 12:49:44 729

原创 python装饰器装饰类

Decorating Classes 装饰器可以用来像装饰函数一样装饰类(毕竟类也是可调用对象) 装饰类可以有多种用途。类装饰器可以和被装饰类的属性交互。一个类装饰器可以添加或增强属性,或者它可以修改类的API, 在类如何被定义和它的实例如何被使用之间提供区别.你可能 会问,添加或增强一个类的属性的合适做法不是通过子类么?通常,答案是这样。然而, However, in some si

2017-06-19 18:09:40 1650

原创 Python装饰器----应用示例(一)

写装饰器装饰器只不过是一种函数,接收被装饰的可调用对象作为它的唯一参数,然后返回一个可调用对象(就像前面的简单例子) 注意重要的一点,当装饰器被应用到被装饰函数上时,装饰器代码本身就会运行,而不是当被装饰函数被调用时.理解这个很关键,接下来的几个例子的讲解过程也会变得很清楚 一个初始例子: 函数注册 考虑下面的简单函数的注册Consider the following simple r

2017-06-18 23:54:44 3750 1

翻译 Python装饰器----概览

装饰器是用来把代码包装住函数或类的工具。装饰器显式地把包装器应用到函数或类上,致使他们“参与”到装饰器的功能当中。装饰器非常的有用,在一个强调函数运行的先决条件的情况下(例如确保身份验证),或者确保函数运行结束后的的清理(例如,输出过滤或异常处理).他们在被装饰方法或类本身上采取行动也有用处。例如,一个装饰器可能用一个 信号系统注册一个函数或者一个URI注册到web应用中。本章提供了什么是装饰器,他

2017-06-18 19:23:36 466

翻译 基于Python语言使用RabbitMQ消息队列(六)

远程过程调用(RPC)在第二节里我们学会了如何使用工作队列在多个工人中分布时间消耗性任务。 但如果我们想要运行存在于远程计算机上的方法并等待返回结果该如何去做呢?这就不太一样了,这种模式就是常说的远程过程调用(RPC)。 在本节我们会在本节我们会使用RabbitMQ创建一个RPC系统:一个客户端和一个可扩展(scalable)的RPC服务。由于我们没什么真正的时间消耗型任务去分配,我们就创建一个

2017-05-26 22:50:05 2138

翻译 基于Python语言使用RabbitMQ消息队列(五)

Topics在前面教程中我们改进了日志系统,相比较于使用fanout类型交易所只能傻瓜一样地广播,我们用direct获得了选择性接收日志的能力。虽然使用direct类型交易所改进了我们的系统,但它仍然有所限制——它不能做基于多重条件(multiple criteria)的路由。 在日志系统中我们可能不只是想要基于严重级别来订阅日志。也想要基于产生日志的来源。你可能从unix的系统日志工具(sysl

2017-05-26 15:46:46 555

翻译 基于Python语言使用RabbitMQ消息队列(四)

路由在上一节我们构建了一个简单的日志系统。我们能够广播消息给很多接收者。在本节我们将给它添加一些特性——我们让它只订阅所有消息的子集。例如,我们只把严重错误(critical error)导入到日志文件(存入磁盘空间),但仍然可以打印所有日志消息到控制台。绑定前面的例子中我们已经创建了绑定,像下面这样:channel.queue_bind(exchange=exchange_name,

2017-05-26 07:44:37 765

翻译 基于Python语言使用RabbitMQ消息队列(三)

发布/订阅前面的教程中我们已经创建了一个工作队列。在一个工作队列背后的假设是每个任务恰好会传递给一个工人。在这一部分里我们会做一些完全不同的东西——我们会发送消息给多个消费者。这就是所谓的“发布/订阅”模式。为了解释这种模式,我们将会构建一个简单的日志系统。它包含两个程序——第一个产生日志消息,第二个接收并把他们打印出来。在我们的日志系统中,每一个接收程序的正在运行的拷贝都会获知消息,那样我们将能够

2017-05-25 17:54:15 5213

翻译 基于Python语言使用RabbitMQ消息队列(二)

工作队列在第一节我们写了程序来向命名队列发送和接收消息 。在本节我们会创建一个工作队列(Work Queue)用来在多个工人(worker)中分发时间消耗型任务(time-consuming tasks)。工作队列(又叫做: Task Queues)背后的主体思想是 避免立刻去执行耗时任务并且等待它们完成。 相反我们可以安排这样的任务稍后执行. 我们可以把任务封装成一个消息并发送到队列中. 一个在后

2017-05-24 15:50:21 1280

翻译 基于Python语言使用RabbitMQ消息队列(一)

介绍RabbitMQ 是一个消息中间人(broker): 它接收并且发送消息. 你可以把它想象成一个邮局: 当你把想要寄出的信放到邮箱里时, 你可以确定邮递员会把信送到收信人那里. 在这个比喻中, RabbitMQ 就是一个邮箱, 同时也是一个邮局和邮递员 . 和邮局的主要不同点在于RabbitMQ不处理纸质信件, 而是 接收(accepts), 存储(stores) 和转发(forwards

2017-05-24 14:55:04 4850

翻译 Python数据结构——队列(1)

队列(queue)这一数据结构非常适合那些数据按照其被接收的顺序处理的问题。如共享打印机。队列可以被看做一个先进先出的(FIFO)list. 下图为一个队列结构 有多种方式来实现一个队列:list,linked list,array都可以。首先看一个list实现的队列 1、用python list实现队列class Queue : # Creates an empty queue. def

2016-10-30 23:05:31 559

翻译 Python数据结构——栈

用两种数据结构实现栈 1、使用list,代码如下:class Stack : # 初始化一个空的栈 def __init__( self ): self._theItems = list() #返回True或False. def isEmpty( self ): return len( self ) == 0 # 返回栈中元素的个数 def __len__ (

2016-10-24 22:47:49 364

原创 Python数据结构——链表

Python中的list是基于array实现的。但无论是list还是array在数据存储和操作层面都有一些缺点。例如在插入和删除元素时都要移动元素,这在数据量旁大时就需要很大开销。array大小是固定的,无法更改;虽然list是可扩展的,但这也是有其代价的。别忘了list是基于array实现的,这就意味着list的每次扩展都要创建更大的array,然后把原来的array拷贝过来。array需要存储在

2016-10-22 10:47:18 517

原创 Python数据结构——查找和排序

1.1线性查找 在Python中查看一个元素是否在一个序列中,我们可以使用‘in’操作符,如:if key in theArray :print( "key在 array中." )else :print( "key 不在 array中." )不难想象,其实‘in’操作符是基于线性查找实现的。接下来看一个在无序序列上的线性查找的实现。def linearSearch( theValues,

2016-10-19 23:14:40 416

原创 网络py

``` pythonimport os from os import os import pickleclass FileDescr(object): saved = [] def __init__(self, name=None): self.name = name11 def __get__(self, obj, typ=None): if self.name not in Fi

2016-10-19 09:35:14 229

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除