自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Python实现超时装饰器

目标:实现一个超时自动切换当前任务到其他任务装饰器,然后还可以在其他任务完成后再切换回来的程序 原计划在signal.signal的handler中触发TimeoutError,然后在用户代码的exception中捕获到异常,此时就可以切换到其他任务了。如下: import signal i...

2019-08-14 13:06:14

阅读数 42

评论数 0

原创 TypeError: can't pickle _thread.RLock objects

"D:\Program Files\Python36\python.exe" E:/工作文件/Project/pycrontab/test.py Traceback (most recent call last): File ...

2018-07-24 16:26:39

阅读数 4863

评论数 0

原创 PostgreSQL JSON类型

https://www.postgresql.org/docs/10/static/functions-json.html#FUNCTIONS-JSONB-OP-TABLE Postgres支持两种JSON类型: json和jsonb. 两种类型在数据存储前都作了JSON格式的检查,但jsonb...

2018-06-20 17:36:30

阅读数 1174

评论数 0

原创 SQL格式化工具

作为一个长期从事于数据库的工作者,本人对于各种数据库管理工具的代码格式化功能SQL语句的功能相当不满,特别是除PLSQL Developer之外的工具,“美化”的SQL相当难看。笔者最近抽出来时间自己写了一个SQL格式化工具(O(∩_∩)O哈哈~不敢叫美化),放在Github上。有兴趣的同学可以看...

2018-04-28 14:34:26

阅读数 2842

评论数 0

原创 GitLab自动部署(CI)

目前GitLab已经有了CI功能,即持续集成的功能。可以实现代码提交后自动测试、编译、发布、部署等自动化工作。关于这一块的内容,网上文章都是语焉不详。最近正需要GitLab自动部署,踩了不少坑,现把配置步骤记录下来,以供大家参考。 目标:代码提交到GitLab上,由GitLab的CI功能自动完成...

2018-04-20 13:22:59

阅读数 7760

评论数 1

原创 Kettle处理boolean类型数据

问题描述: 使用Kettle连接一些支持boolean类型的数据库(比如postgres/greenplumn时就)作输入输出时会遇到以下错误,因为当boolean类型的数据被加载到kettle中变成了字符串'Y' 或 'N' ,当再插回另一个数据库时,就提示字符串类型不能插入boolean类型...

2018-04-02 11:14:58

阅读数 664

评论数 0

原创 Linux下的权限(RWX)详解

平时没太在意Linux权限的问题,今天正好要实现一个只允许写不允许删除其它文件的功能,正好整理一下。 以下结果在Centos7.1上测试通过,如有不正确的地方,请在评论区指出! r (Read):对于文件,具有读取文件内容的权限;对于目录,具有浏览目录的权限。 w (Write):...

2018-03-30 13:45:39

阅读数 1148

评论数 0

原创 Git取消配置文件的跟踪

一般我们都是通过.gitignore文件来现实commit时不提交一编译中间文件。但.gitignore有个缺点,即当之前该文件已经被跟踪(track),那么再把这个文件名添加到.gitignore中就没有用了。 不过网上有很多文章说,通过以下命令让.gitignore生效: git rm...

2018-03-22 14:58:33

阅读数 1081

评论数 0

原创 Windows下获取已安装应用程序

获取WINDOWS系统已安装的所有应用程序,打开注册表, HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store

2018-03-21 15:58:20

阅读数 2667

评论数 0

原创 find与ls命令合体坑总结

作为一个高级系统工程师,当然要熟悉linux下各种命令的快速拼写。O(∩_∩)O哈哈~ 然而,find与ls命令的快捷方式我们又知道多少了? 我们可能会用find / -name xxx -type f,可能会用ls -lrt,我们知道ls中-k代表按kg显示,-s代表按块显示,-h文件大小更...

2018-01-16 16:16:40

阅读数 1743

评论数 0

原创 GitHub中GPG认证使用

1. 打开本地的git bash命令窗口,执行gpg –gen-key: gpg --gen-key Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal ...

2018-01-14 19:20:24

阅读数 1091

评论数 0

原创 SQL求几几何平均数

Oracle,PostgreSQL都没有直接求几何平均数的方法,需要通过以下方式实现: power(exp(1),ln(exp(sum(ln(col_a))))/count(1) 首先要知道求积如何实现: with sele as (select 3 as c...

2018-01-06 16:08:20

阅读数 771

评论数 0

原创 Python Select socket非阻塞写日志

上一篇我们通过线程锁实现了一个简单的并发写日志功能,该篇我们通过socket来实现一个写日志的程序,代码如下:socket服务端import selectors import socket, timesel = selectors.DefaultSelector()def accept(sock,...

2018-01-02 00:18:56

阅读数 257

评论数 0

原创 Python通过Thread锁实现并发日志入库

使用线程锁来实现一个简单写日志到数据库的功能,通过threading锁来实现线程安全,代码如下:#-*-utf-8-*- import logging, datetime, time from multiprocessing import Queue, Process import cx_Orac...

2017-12-30 22:18:51

阅读数 420

评论数 0

原创 Python实例管理

Python如何实现一个类只允许被实例化一次?这就要分两种情况:在同一个脚本中实例化同一个类 这种有两种方法实现,一个是利用__new__方法,需要知道的是__new__方法运行的__init__方法之前,所以我们可以控制如何实例化类,甚至返回其它类的实例。 通过类方法来实现,如下getInsta...

2017-12-27 23:38:40

阅读数 174

评论数 0

原创 Pycharm取消py脚本中SQL识别

Pycharm默认可以识别py脚本中的SQL语句,本身很不错,但当SQL拼接时就显示的代码特别难看,找了好久,终于知道怎么关闭SQL识别功能了。如下图,把勾去掉就可以了。

2017-12-26 14:53:56

阅读数 2767

评论数 0

原创 Postgresql发布与订阅

重点1、当Subscriber创建时会在对应的Publisher上创建一个slot,因为每一个订阅,都要消耗掉一个replication slot,需要消耗一个wal sender。 2、Publisher发生的改变都保存为wal文件,由walsender进程发送,然后Subscriber的ap...

2017-12-26 11:50:16

阅读数 982

评论数 0

原创 Oracle对象批量编译

Oracle导出导入数据后,如果新导入的有存储过程、函数、触发器、视图之类的Object就需要重新编译一下,不然他们的状态就是无效的。提供一个SQL以供大家使用。declare objowner varchar2(50) := 'scott'; begin for obj in (...

2017-12-25 12:58:06

阅读数 580

评论数 0

原创 Oracle expdp/impdp测试库搭建过程

最近客户需要搭建一个测试库,折腾完,正好把的经验整理一下。一、测试库库创建: 在windows下创建数据库最好以管理员权限运行,即使是Administrator登录也要这样操作,一般我们最好是保证使用Administrator来创建。不然后面可能监听无法创建。 数据库是OLAP还是OLTP,OLA...

2017-12-25 00:16:57

阅读数 1694

评论数 0

原创 Python Json树更新

记录一段搜索Json树的代码,用于返回指定的节点并更新,因为Python返回的字典是对象引用,所以可以直接更新。 class BaseJsonGenerator(object): def __init__(self): self.bmDao = BMDao() ...

2017-12-16 21:37:16

阅读数 701

评论数 0

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