socketio与apscheduler并用

2019年4月28日 10:16

 

 说明

 
flask项目引入了flask-socketio提供websocket通信,同时需要flask-apscheduler完成定时任务。
 
 

 问题描述

 
项目初期只有socketio,并且以gunicron运行
 
gunicorn --worker-class eventlet -w 1 zhima_chat:app -b 0.0.0.0:5000 --access-logfile -
 
后来要引入apscheduler
 
以上面的方式运行,出现了问题。该如何将socketio与apschedeuler结合呢?
 
 

Tags: flask apscheduler python socketio
评论(0) 阅读(937)

为jekyll制作docker镜像

2019年4月28日 10:08

说明

 
jekyll运行依赖ruby,每次重装都会遇到版本问题,挺麻烦,干脆做成镜像
 
 

官方镜像存在的问题

 
docker上有jekyll的官方镜像,如果是直接运行,没什么问题。
 
如果你挂载volume就会有权限问题
 
jekyll 3.8.5 | Error:  Permission denied @ dir_s_mkdir - /srv/jekyll/_site
 
 

Tags: jekyll docker
评论(0) 阅读(877)

docker运行gunicorn看不到控制台输出

2019年4月06日 07:59

问题描述

 
项目做成了docker镜像, 以gunicorn命令运行, print输出为什么没有写到docker日志?
 
<!--more-->
 
* docker-compose文件如下
 
version: '2'
services:
  xxx.xxx:
    image: xxx:1.0
    volumes:
        - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
        - ./log/xxx:/var/log/xxx
        - ./xxx:/app
    ports:
      - "5000:5000"
    environment:
      - FLASK_ENV=development_wyq
    command: gunicorn --worker-class eventlet -w 1 xxx:app -b 0.0.0.0:5000      # print不写到控制台
    #command: gunicorn --worker-class eventlet -w 1 xxx:app -b 0.0.0.0:5000 --access-logfile -   #print写到控制台
 
 

解决方法

 
在命令上加上"--access-logfile -"
 
来源 
 
此生必看的科学实验-水知道答案
《了凡四训》详解之改过之法
印光大师十念法(胡小林主讲第1集)
精神病为什么治不好
百病之源
 

Tags: docker flask websocket gunicorn
评论(0) 阅读(1300)

学习: matplotlib绘制阻尼正弦波

2019年4月06日 07:55

介绍

 
* 阻尼正弦波定义: 振幅会随时间增长而趋向零的正弦波函数
 
 

Tags: matplotlib
评论(0) 阅读(1306)

利用qq邮箱作为个人邮件服务器发送邮件

2019年4月06日 07:47

 需求描述
    邮件通知很有用处。如何搭建一个邮件服务器,允许发送邮件呢?
 

实现方法

 
一、利用开源软件,搭建自己的邮件服务器。
二、利用qq等第三方邮件服务。
 
自己搭邮件服务器较麻烦,我的需求比较简单,利用qq邮件,发送邮件即可,下面是方法.
 
 

Tags: 运维
评论(0) 阅读(542)

实现智能dns为用户分配最佳线路

2019年3月24日 09:43

 

说明

 
服务器放在国外,不同线路质量不一样。如何根据访问者的所在地、运营商,智能的分配线路呢?
 
有些域名服务器上提供线路优先级,比如阿里云,如果是国外域名服务商,一般都不会提供。
 
所以通常要我们自己实现自动分配线路的功能。
 
 

例如

 
有一个网站www.yongqingking.top,它的真实服务器ServerA在海外。网站的部分用户在国内。
由于各种原因,在国内访问海外服务器的质量不是很好。为了改善状态,打算为国内用户提供多条访问线路。
 
用户访问时,自动分配合适线路,提供网站访问质量。
 
 

Tags: 智能dns
评论(0) 阅读(858)

学习:人工智能-机器学习-深度学习概念的区别

2019年1月20日 12:36

 

一图胜千言

 
 

Tags: 机器学习 深度学习
评论(0) 阅读(1863)

使用numba的姿势不正确反而导致性能下降

2019年1月20日 09:24

numba能够极大的提高python在计算方面的性能。是不是所有的python代码上,都可以加上numba.jit装饰器?答案是否定的。
 
 

Tags: python 性能
评论(0) 阅读(1739)

numba加速python学习与尝试

2019年1月20日 09:20

 简介

 
探索python性能优化工具,发现了numba. 只需要给函数加上装饰器就可以。比cython和pypy方便多了。
 

numba是什么

 
numba是为了提高numpy速度而开发的,使用llvm将python代码翻译为bitcode,并在bitcode外面做了一层包装,让python可以调用
 
通过numba翻译的代码由于经过llvm优化并可在机器上直接执行,效率将有所提高,对海量数据处理非常有帮助
 
 

评论(0) 阅读(1757)

用最简单方法解决api接口安全问题,几乎无法破解

2019年1月01日 11:45

 

 场景描述

 
项目需要为第三方提供api服务接口。接口涉及到核心功能,如何保证接口安全。防止伪造身份、篡改数据?
 

思路

 
保障数据安全最好的方法,当然是加密了。无法解析内容,自然无法伪造,篡改。

可是使用https证书需要收费的。有其它方法么?

有的。

消息哈希认证(hmac)。
 
 

 算法描述

 
*  访问者
 
1. 当访问接口时, 将参数按key值排序,组成key1=value1&key2=value2&....&secret_key=...
2. 然后对上面结果做md5,生成签名sign
3. 将sign放到加入请求的参数
 
* 被访问者
 
密钥是被访问者提供了,它也有访问者的secret_key.
1.根据app_id查到secret_key
2.处理请求参数,按规则组成key1=value1&key2=value2....&secret_key=...
3.对上一步结果做md5,生成sign。比较两个sign,相等则身份验证通过
 

效果

 
1. 密钥只存在双方机器上,不可能被截取
2. 签名无法伪造,同样身份无法伪造、消息无法被篡改
 
使用了hmac认证,接口被破解基本是不可能的
 

python实现

 
import md5

app_id=123
secret_key="xxxxxxxx"

request_param = dict(
    key1="value1",
    key2="value2",
    key3="value3"
)

def sign():
    params = ["%s=%s" % (key, value) for key, value in sorted(request_param.items(), key=lambda item: item[0])]
    params.append("secret_key=%s" % secret_key)
    str_param = "&".join(params)
    print str_param
    md = md5.md5()
    md.update(str_param)
    return md.hexdigest()

if __name__ == '__main__':
    print(sign())
 
 
来源
 

 

Tags: web python
评论(0) 阅读(1964)