Python进程间通信之命名管道(Windows)

前面文章说了一下 Linux 命名管道的实现,今天看看 Windows 上我们怎么实现。在 Windows 上的命名管道主要是通过调用 win32 api 的以下方法来实现的: - win32pipe.CreateNamedPipe() - win32pipe.ConnectNamedPipe() - win32file.ReadFile() - win32file.WriteFile()下...
阅读(64) 评论(0)

Python2.x设置命令执行的超时时间

在Python2.x中的几个用来执行命令行的库或函数在执行命令是均不能设置一个命令执行的超时时间,用来在命令执行时间超时时终端这个命令的执行,这个功能在3.x(?)中解决了,但是在2.x还是只能自己实现。下面就简单实现了一个版本:import subprocess from threading import Timer def call(args, timeout): p = subproc...
阅读(92) 评论(0)

Python进程间通信之共享内存

前一篇博客说了怎样通过命名管道实现进程间通信,但是要在windows是使用命名管道,需要使用python调研windows api,太麻烦,于是想到是不是可以通过共享内存的方式来实现。查了一下,Python中可以使用mmap模块来实现这一功能。Python中的mmap模块是通过映射同一个普通文件实现共享内存的。文件被映射到进程地址空间后,进程可以像访问内存一样对文件进行访问。不过,mmap在linu...
阅读(282) 评论(0)

Python进程间通信之命名管道

管道是一种简单的FIFO通信信道,它是单向通信的。 通常启动进程创建一个管道,然后这个进程创建一个或者多个进程子进程接受管道信息,由于管道是单向通信,所以经常需要创建两个管道来实现双向通信。命名管道是对传统管道的扩展,默认的管道是匿名管道,只在程序运行时存在;而命名管道是持久化的,当不需要时需要删除它。命名管道使用文件系统,由mkfifo()方法创建。一旦创建了,两个独立的进程都可以访问它,一个读,...
阅读(146) 评论(1)

Redis实现类似同步方法调用的功能(二)

接上一篇,这么干纯粹是为了好玩。上一篇的博客中的例子只能处理一个Server对一个Client的情况,今天修改了一版,可以支持一个Server对多个Client。实现方式就是Server每派发一个动作就扔到一个线程里去,Client也类似每收到一个数据,就起一个线程去做自己的逻辑。这样看起来就有点像socket变成了。import redis import time import json impo...
阅读(197) 评论(0)

Redis实现类似同步方法调用的功能(一)

首先声明,这么干纯粹是为了好玩。通常我们用Redis主要是为了存储一些数据,由于数据在内存里,所以查询更新很快。同时我们也可以利用 Pub/Sub 功能来实现消息发布/订阅。但是今天我们来说说怎么通过Redis的list来实现 Server - Client 的同步通信。具体需求Client 端运行后监听 Server 端派发的请求,然后执行一些操作,并将结果返回给 Server 端。实现想法 利用...
阅读(165) 评论(0)

Django 中针对基于类的视图添加 csrf_exempt

在Django中对于基于函数的视图我们可以 @csrf_exempt 注解来标识一个视图可以被跨域访问。那么对于基于类的视图,我们应该怎么办呢?简单来说可以有两种访问来解决方法一:在类的 dispatch 方法上使用 @csrf_exemptfrom django.views.decorators.csrf import csrf_exemptclass MyView(View): def g...
阅读(140) 评论(0)

Python 使用 os.fork() 创建子进程

Linux 操作系统提供了一个 fork() 函数用来创建子进程,这个函数很特殊,调用一次,返回两次,因为操作系统是将当前的进程(父进程)复制了一份(子进程),然后分别在父进程和子进程内返回。子进程永远返回0,而父进程返回子进程的 PID。我们可以通过判断返回值是不是 0 来判断当前是在父进程还是子进程中执行。在 Python 中同样提供了 fork() 函数,此函数位于 os 模块下。下面是一个例...
阅读(165) 评论(0)

SSH 首次登录太慢问题

这两天在使用 Docker 做测试,发现新建的容器在首次 ssh 登录的时候经常超时,我们简单将超时时间设置成60秒,但仍然会偶尔超时。所以简单延迟超时时间此路不通。于是想到是否可以通过修改 sshd 的参数,来解决问题。大概查了一下 SSH 登录太慢可能是 DNS 解析的问题,默认配置 ssh的 初次接受 ssh 连接时会自动反向解析客户端 IP 地址以得到 ssh 客户端的主机名。如果此时 DN...
阅读(253) 评论(0)

Go语言打印调用堆栈

Go语言打印调用堆栈这两天看Go的代码,呃,协程太多,无数个携程调用了一个方法,彻底看不清了,所以就想到是不是可以把调用堆栈打印出来。查了一下,发现Go的 runtime/debug 库可以把调用堆栈打出来。下面看个例子:package mainimport ( "fmt" "runtime/debug" )func test1() { test2() }func test2...
阅读(427) 评论(0)

Cannot mix incompatible Qt library (version 0x40805) with this library (version 0x40801)

问题描述今天运行我的 linux 上的 go 语言 IDE liteide 突然报错,错误如下:Cannot mix incompatible Qt library (version 0x40805) with this library (version 0x40801)解决办法执行如下操作,然后重启 liteide$ cd /opt/liteide/lib/liteide $ mkdir qt....
阅读(235) 评论(0)

Kafka 单节点多Kafka Broker集群

Kafka 单节点多Kafka Broker集群接前一篇文章,今天搭建一下单节点多Kafka Broker集群环境。配置与启动服务由于是在一个节点上启动多个 Kafka Broker实例,所以我们需要使用不同的端口来实现。$ cp config/server.properties config/server-1.properties $ cp config/server.properties con...
阅读(319) 评论(0)

Kafka 单节点单Kafka Broker集群

下载与安装从 http://www.apache.org/dist/kafka/ 下载最新版本的 kafka,这里使用的是 kafka_2.12-0.10.2.1.tgz$ tar zxvf kafka_2.12-0.10.2.1.tgz $ cd kafka_2.12-0.10.2.1运行启动 zookeeper 服务$ bin/zookeeper-server-start.sh config/z...
阅读(255) 评论(0)

使用pipework将Docker容器配置到本地网络环境中

使用pipework将Docker容器配置到本地网络环境中需求在使用Docker的过程中,有时候我们会有将Docker容器配置到和主机同一网段的需求。要实现这个需求,我们只要将Docker容器和主机的网卡桥接起来,再给Docker容器配上IP就可以了。下面我们就使用pipework工具来实现这一需求。安装pipework$ git clone https://github.com/jpetazzo/...
阅读(539) 评论(0)

使用Sinopia搭建私有npm仓库

使用Sinopia搭建私有npm仓库在用npm装包的时候,每次都要下载一大堆,慢且不说,npm还老被墙,所以就想到在公司内部搭建npm仓库镜像。大概看了几个,觉得Sinopia最简单也好用,所以就使用Sinopia搭建仓库吧。安装sudo npm install -g sinopia配置与运行安装完成后,暂时不知道配置文件在哪里,可以先运行一下 sinopia,比如:$ sinopia warn...
阅读(441) 评论(0)
503条 共34页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:2726067次
    • 积分:27914
    • 等级:
    • 排名:第206名
    • 原创:474篇
    • 转载:29篇
    • 译文:0篇
    • 评论:468条
    博客专栏
    文章分类
    文章存档
    最新评论