RQAlpha安装 ta-lib进行技术指标分析
RQAlpha安装 ta-lib进行技术指标分析
RQAlpha安装时需要事先安装ta-lib否则Python引用时会出现错误
STEP1.使用 ta-lib 的源代码编译 ta-lib 的静态库
wget https://jaist.dl.sourceforge.net/project/ta-lib/ta-lib/0.4.0/ta-lib-0.4.0-src.tar.gz tar xf ta-lib-0.4.0-src.tar.gz cd ta-lib # 安装到/usr ./configure --prefix=/usr make sudo make install |
注意这里需要指定安装位置,编译安装的ta-lib是32位版本,
如果不指定的话在64位操作系统下是无法在lib和/usr/lib下找到的
STEP2.使用pip安装ta-lib
pip install TA-Lib |
参考
https://stackoverflow.com/questions/41155985/python-ta-lib-install-problems
CentOS7 使用SystemD实现开机自启动和服务管理
CentOS7 可以在SystemD管理服务Service方式实现服务的自启动
SystemD即为System Daemon,是linux下的一种init软件,开发目标是提供
更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,
同时达到降低Shell的系统开销的效果。
这里假设需要启动
# /usr/share/autostartup/foobar.sh |
STEP1.创建SystemD管理服务使用的.service文件
/usr/share/autostartup/foobar.service |
以下是测试service文件,.service的具体编写,参考systemd相关文档
[Unit] Description=foobar Documentation=http://www.doc.com/doc.html After=network.target [Service] Type=simple WorkingDirectory=/home/foobar ExecStart=/usr/share/autostartup/foobar.sh ExecStop=/bin/kill -s QUIT $MAINPID Restart=always StandardOutput=syslog StandardError=syslog SyslogIdentifier=foobar User=foobar Group=foobar Environment= [Install] WantedBy=multi-user.target |
CentOS6 使用rc.local实现开机自启动
CentOS6 可以在rc.local中增加启动shell脚本实现开启自启动
这里假设需要启动
/usr/share/autostartup/demo-service.sh |
STEP1. 将需要开启启动的脚本设置为标记为可执行文件
chmod +x /usr/share/autostartup/demo-service.sh |
STEP2. 执行如下命令将/etc/rc.d/rc.local文件标记为可执行文件
chmod +x /etc/rc.d/rc.local |
在CentOS7 中,/etc/rc.d/rc.local文件的权限被降低了,开机的时候执行在自己的脚本是不能起动一些服务的。
将需要执行的脚本写入到 /etc/rc.d/rc.local
echo “/usr/share/autostartup/demo-service.sh” >> /etc/rc.d/rc.local |
CentOS使用run-as-user.sh处理运行环境的用户不同问题
很多时候,部署运行环境的用户和实际运行的用户是不同的,
当因为环境限制,当时碰到以下场景的时候,就比较麻烦了,需要编写一个脚本来实现运行。
1.不能使用su和sudo时
2.用户没有shell不支持login时,比如nobody,服务用户
3.使用Docker等容器时
4.使用SSH远程执行命令,但是不能使用登陆用户
实现前提
1.需要运行用户的用户名和用户分组以及密码
2.需要运行用户的PUID和PGID
使用前请修改代码中实际运行的用户名,且用户存在
./run-as-user.sh 命令 命令参数 |
CentOS一键编译安装 NodeJS脚本
如题 CentOS一键编译安装 NodeJS脚本,使用NodeJS源代码编译,适用于CentOS和Debian,
默认安装的Nodejs版本已经老掉牙了
脚本支持选择node的版本和prefix
两个编译变量
NODE_VERSION=v8.11.3
NODE_PREFIX=/usr/local
使用了系统vCPU数量来控制NPROC数量,支持各种虚拟机的情况
NPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1)
对于物理机编译安装,建议按实际CPU数量*单个CPU核心数量进行参数设置
另外使用国内的taobao作为NPM的第一来源镜像。
#!/bin/bash ############################################################################## # Build develop enviroment for running npm and nodejs # # version="1.0.0" # node="v8" # os="CentOS v7.4" # user=“dev” # description="Node v8 compiled from source running on CentOS v7.4" ############################################################################## ############################################################################## # If is root ############################################################################## if [ "$(whoami)" != 'root' ]; then echo "install need root user" exit fi ############################################################################## # Export enviroment variant ############################################################################## export TERM=xterm export NLS_LANG=American_America.AL32UTF8 export LANG=C # C.UTF-8 export LANGUAGE=C # C.UTF-8 export LC_ALL=C # C.UTF-8 export TIMEZONE=Asia/Shanghai ############################################################################## # Build variant ############################################################################## NODE_VERSION=v8.11.3 NODE_PREFIX=/usr/local ############################################################################## # Setup build enviroment ############################################################################## yum -y update yum -y install \ ca-certificates \ gcc \ gcc-c++ \ gnupg \ libgcc \ libstdc++ \ kernel-headers \ openssl \ openssl-devel \ mercurial \ subversion \ git ############################################################################## # Install Node & NPM ############################################################################## # Download and validate the NodeJs source for key in \ 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ FD3A5288F042B6850C66B31F09FE44734EB7990E \ 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ B9AE9905FFD7803F25714661B63B535A4C206CA9 \ 56730D5401028683275BD23C23EFEFE93C4CFFFE \ ; do \ gpg --keyserver pgp.mit.edu --recv-keys "$key"|| \ gpg --keyserver keyserver.pgp.com --recv-keys "$key" || \ gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" ; \ done mkdir /node_src cd /node_src curl -o node-${NODE_VERSION}.tar.gz -sSL https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}.tar.gz curl -o SHASUMS256.txt.asc -sSL https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc gpg --verify SHASUMS256.txt.asc grep node-${NODE_VERSION}.tar.gz SHASUMS256.txt.asc | sha256sum -c - # Compile and install cd /node_src tar -zxf node-${NODE_VERSION}.tar.gz cd node-${NODE_VERSION} ./configure --prefix=${NODE_PREFIX} #./configure NPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) make -j${NPROC} make install # Set PATH enviroment variant export PATH=${PATH}:${NODE_PREFIX}/bin # Add the environment variable to /etc/profile echo "export PATH=${PATH}:${NODE_PREFIX}/bin" >> /etc/profile ############################################################################## # Install Package use NPM ############################################################################## npm config set unsafe-perm true \ npm config set strict-ssl false \ npm config set registry https://registry.npm.taobao.org # npm config set proxy http://[email protected]:xxxx # npm config set https-proxy=http://[email protected]:xxxx # Install node packages npm install -g \ gulp-cli \ grunt-cli \ markdown-styles \ yarn ############################################################################## # Setup users ############################################################################## groupadd dev useradd -s /bin/bash -g dev dev echo "dev:password" | chpasswd ############################################################################## # Clean up ############################################################################## find ${NODE_PREFIX}/lib/node_modules/npm -name test -o -name .bin -type d | xargs rm -rf rm -rf \ /node_src \ /tmp/* \ /var/cache/yum/* \ ${NODE_PREFIX}/lib/node_modules/npm/man \ ${NODE_PREFIX}/lib/node_modules/npm/doc \ ${NODE_PREFIX}/lib/node_modules/npm/html |
Mybatis映射BigDecimal问题
Mybatis映射数据库类型中使用numberic和decimal时,
如果需要使用String进行数据传递但是小数位很长或者整数位很长的话
Mybatis会把数据映射成BigDecimal来处理
但是如果Mybatis会傻傻的使用.toString()来转换,结果可能会被转成科学记数法
今天某数据库存储的超长订单号就出现了这个问题,不说了,我去改代码了。
// MyBatis的做法,直接调用Bigdecmal的.toString() // 浮点数的打印时正常 new BigDecimal("10000000000").toString() // >>10000000000 // 普通的数字字符串,没关系,我们发誓订单号不会超过限度,用数字类型没关系 new BigDecimal("100.000").toString() // >>100.000 // 去除末尾多余的0,我们用了保留订单号,订单号用123开头,然后补0, new BigDecimal("100.000").stripTrailingZeros().toString() // >>1E+2 // 避免输出科学计数法, 这才是正确的做法,MyBatis怎么搞得,这点转换都不做,MyBatis还能干啥? new BigDecimal("100.000").stripTrailingZeros().toPlainString() // >>100 |
PostgreSql查询正在执行的SQL和查询执行耗时的SQL
运行在AWS RDS上的PostgreSql今天TransactionID耗尽,原因是有一个SQL执行占用CPU超过12小时
–查询正在执行的SQL
SELECT * FROM pg_stat_activity WHERE datname='schema名称'; |
–结束正在进行的R查询
SELECT pg_cancel_backend(pid); |
–结束正在执行CUD操作
SELECT pg_terminate_backend(pid); |
Recent Comments