~momoji.技术架构及算法~
选取python3为开发语言,版本python 3.7.3;
web架构为pyramid;
数据库访问采用sqlalchemy;
使用jinja2模板,也提供api,但非完全前后端分离;
前端使用了echarts2;
考虑该站点依靠iis挂了几个应用,80端口已占就用iis做了application request routing 和 url rewrite,后续考虑换为nginx;
数据库mysql,版本mysql 8.0.16.0;后续考虑换位文件系统;
存储结构具有为单父属性的节点,即tree或者multi-tree;但最终实现可成环的有向图,非dag(因为有向且成环);
momoji.技术架构及算法 by 飞~甜 @ 2019-06-11 14:56:51
切到该章
收藏
从此续写
~celery~
前几天学习了python celery,python的分布式任务队列;今天给momoji添加了pyramid_celery模块;
谈几点感受吧:
1.celery传承python清新简洁的风格,对函数定义进行修饰,即完成了队列的publisher的提交定义,同时也完成了任务队列的consumer的任务处理逻辑定义;
例如:
tasks.py
from pyramid_celery import celery_app as app
@app.task
def add(x, y):
return x+y
以上即定义了任务的publisher的提交形式:名称为add;需要两个参数x和y;又定义了consumer的处理逻辑:计算x与y的和;
2.调用publisher和启动consumer也自然而然的统一起来;
例如:
celery worker -A tasks --pool=solo -l info
此系统命令启动了一个任务的consumer,对应的逻辑定义在tasks.py中;
>>>from tasks import add
>>>r = add.delay(3,4)
>>>r.result
7
此python语句引入了tasks模块中的add,对add进行add.delay(3,4)调用,即完成了对task的publish;
last by 飞~甜 @ 2019-07-02 18:25:55
章节模式
复制地址