临江仙·过秦淮河
临江仙·过秦淮河
柳映红花花映柳,斜云照影英英。轻谣信步过桥头,当年侯景,岂可据梁兵。
商女怎知亡国恨,凭栏何处戚戚。细裙翩舞蜿游龙,涟漪仍旧,笑靥总熙熙。
centos 安装 mysqlclient
系统版本:centos 7
python版本:python 3.6.8
安装 mysqlclient
123# 这里的 python36-devel 根据具体的 python 版本选择sudo yum install -y python36-devel mysql-devel gccpip3 install mysqlclient
参考链接
江城子·乙卯正月二十日夜记梦
江城子·乙卯正月二十日夜记梦
【北宋】苏轼
十年生死两茫茫,不思量,自难忘。千里孤坟,无处话凄凉。纵使相逢应不识,尘满面,鬓如霜。
夜来幽梦忽还乡,小轩窗,正梳妆。相顾无言,惟有泪千行。料得年年肠断处,明月夜,短松冈。
赏析
苏东坡十九岁时,与年方十六的王弗结婚。王弗年轻美貌,且侍亲甚孝,二人恩爱情深。可惜天命无常,王弗二十七岁就去世了。这对东坡是绝大的打击,其心中的沉痛,精神上的痛苦,是不言而喻的。苏轼在《亡妻王氏墓志铭》里说:“治平二年(1065)五月丁亥,赵郡苏轼之妻王氏(名弗),卒于京师。六月甲午,殡于京城之西。其明年六月壬午,葬于眉之东北彭山县安镇乡可龙里先君、先夫人墓之西北八步。”于平静语气下,寓绝大沉痛。公元1075年(熙宁八年),东坡来到密州,这一年正月二十日,他梦见爱妻王氏,便写下了这首“有声当彻天,有泪当彻泉 ”(陈师道语)且传诵千古的悼亡词。
中国文学史上,从《诗经》开始,就已经出现“悼亡诗”。从悼亡诗出现一直到北宋的苏轼这期间,悼亡诗写得最有名的有西晋的潘岳和中唐的元稹。晚唐的李商隐亦曾有悼亡之作。他们的作品悲切感人。或写爱侣去后,处孤室而凄怆,睹遗物而伤神; ...
满江红·安西旧事(其二)
满江红·安西旧事(其二)
长安此去,八千里,精绝故土。人烟稀、目极宽广,大漠深处。
数万铁骑越葱岭,拓图守边封都护。当时盛,波斯王子拜,安居住。
凉陇落,瓜沙苦。伊西残,北庭肃。回纥空借道,中原无路。
少年征夫已白发,天山南北埋忠骨。归义起,还回旧家国,再破虏。
满江红·安西旧事(其一)
满江红·安西旧事(其一)
春过兰州,玉门外,复皑天山。风萧萧、铃旌声急,马蹄声慢。
三十六地归皇土,焉耆龟兹尽伏案。西羌客,往来途此处,俱惊叹。
幽云起,烟尘乱。洛阳破,长安陷。蕃奴夺凉州,伊西讯暗。
都护卌载空守望,乡音不改胡音渐。王师信,一诉衷肠苦,当归盼!
vue集成sentry
Vue 配置集成 Sentry
这是一个快速开始的指南。如果需要了解更多 Vue 集成 Sentry 的方法,请参阅官方完整文档
开始
需要以下依赖来收集 Vue 应用的错误和性能数据:
@sentry/vue (Sentry 的 Vue SDK)
@sentry/tracing (测算性能数据)
可以使用以下包管理器安装依赖或者直接使用CDN引入
使用 yarn 或者 npm
安装依赖:
12345# yarnyarn add @sentry/vue @sentry/tracing# npmnpm install --save @sentry/vue @sentry/tracing
接下来,在 Vue app 根组件初始化之前初始化 Sentry
Vue 2
1234567891011121314151617181920212223242526272829303132import Vue from "vue";import Router from "vue-router";import * as Sentry from "@s ...
docker安装sentry
Docker 安装 Sentry
系统 centos 7 + 4 cores + 8G
如果已安装 docker 和 docker-compose 直接跳转到安装Sentry
安装 Docker
1curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
运行 docker run hello-world测试是否安装成功
若出现 docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?,则根据参考运行如下命令:
12systemctl daemon-reloadsystemctl restart docker.service
重试运行 hello-world 即可
安装 docker-compose 参考
12345curl -L "https://github.com/docker/compose/releases/download/1.28.0/ ...
Spring Boot集成sentry
Spring Boot 配置集成 Sentry
这是一个快速开始的指南,如果想了解更多把 Sentry 集成到 Spring Boot 的方法 ,请参阅官方完整文档。
Sentry 集成到 Spring Boot 需要 Spring Boot 2.1.0 及以上版本以报告未处理的异常以及 Bean 的发布和注册。如果使用低>版本的 Spring Boot,则参考官方旧版本集成文档
安装需要 Maven 或者 Gradle
Maven
12345<dependency> <groupId>io.sentry</groupId> <artifactId>sentry-spring-boot-starter</artifactId> <version>5.4.2</version></dependency>
Gradle
1implementation 'io.sentry:sentry-spring-boot-starter:5.4.2'
配置
打 ...
sentry查询基本逻辑
Sentry 查询基本逻辑
查询api的基本查询调用逻辑如下:
查询api()
=> prep_search() [执行查询]
=> build_query_params_from_request() : { projects, sort_by: sort, limit, cursor, search_filters: query} [构建查询参数]
=> parse_search_query() : search_filters [解析查询字符串]
=> search.query() :result [查询结果]
=> snuba_sdk.query.Query() : [执行具体查询]
search_filters是一个由 query 参数格式化来的查询器集合。一切未在接口定义中明确定义且符合sentry 查询格式的参数均可以通过这个查询器的校验,并执行查询。
根据时间范围查询
parse_search_query方法根据语法解析查询字符串,判断查询条件是否正确,关于时间的查询器的定义如下:
123456789# filter for datesdat ...
原生拖拽-通过数据判断是否可以被放置
原生拖拽–根据数据判断是否可以被放置
dragstart可以写入数据,drop可以读取数据。其他的拖拽事件不可获取数据
但是往往人们需要动态得知是否可以被拖动放置,因此需要在dragover中获取到数据。
实现思路
将数据存放在window或者vuex中,将数据的id绑定在事件参数中,通过id获取原始数据,进而判断是否可以被放置
解决方案
在window中挂载数据对象,如dragData,在dragstart的时候,添加’text/${dataId}'数据项,这里的dataId即是数据的id,它应该在dragData中存在。
当dragover时,虽然e.dataTransfer.getData()方法获取不到数据,但是e.dataTransfer.types是可以拿到先前在dragstart中设置的’text/${dataId}'这个数据项的名字的,从这里可以解析出dataId
用dataId在dragData中查找即可获取被拖动的完整数据
当判定可以放置的时候,对dragover的参数 e,执行e.preventDefault()即可禁止浏览器默认对dragover的处理,使拖拽 ...
sentry清理数据
Sentry清理数据
使用sentry自带的清理数据方式
Sentry 服务磁盘占满 清除postgresql方法
123456789101112# 查看docker 列表docker ps# 找出 web 和 postgre 的Id# 进入web容器并执行保留7天的数据docker exec -it 1f916f730069 /bin/bashsentry cleanup --days 7# 进入postgre容器并执行清理数据库docker exec -it 176e1501e871 /bin/bashvacuumdb -U postgres -d postgres -v -f --analyze
这个操作需要一定量的磁盘,所以如果磁盘非常满,则无效。需要
暴力清理
如何卸载Sentry
1docker volume rm sentry-clickhouse sentry-data sentry-kafka sentry-postgres
如果报 volume is in use,则需要删除容器
1docker rm $(docker ps -a -q)
删除完成后,磁盘已经释放很 ...
2021年度总结
过往一年,匆匆忙忙碌碌,懒懒散散闲闲。有时准时准点下班,有时也可以欣赏到上海凌晨四点的星空。每及加班,心里总是安慰自己,至少我的任务完成了,这个困扰我的问题被我解决了!
2021年度总结
这一年,残業しなければならない
dag —— 痛并快乐着
当我们的平台开始设计时,由于我对dag还不太熟悉,前期的一些花里胡哨的界面,我只得以工时不充足为借口暂且拒绝。后来已经与dag打了几次交道的我,在后端任务量巨大的情况下,终于有足够的时间,审视并重构一下这部分逻辑。不知什么原因,x6的文档写得,应该说,支离破碎。我常常需要打开三个页面对照着看,才能知道我所需要的api。更有甚者,由于其对vue支持得并不是很好,在重新设计这一部分的封装的时候,我竟然发现,它的注册Vue组件的方法,只是将Vue对象与组件名做了对应,只有在实际渲染时才取出对象渲染,创建节点及创建节点后都不会再暴露这一对象。这就导致了一个问题——无法在初始化组件的时候提供数据。无可奈何之下,又为了能尽量封装代码,只好写一个简单的类似的注册对象,动态存取Vue对象。几个加班的日子里,每次在这方面突破一些,我都会更加快乐一些(我甚至为了 ...