一首小诗
寒蝉凄切,对长亭晚,骤雨初歇。都门帐饮无绪,留恋处,兰舟催发。执手相看泪眼,竟无语凝噎。念去去,千里烟波,暮霭沉沉楚天阔。 多情自古伤离别,更那堪,冷落清秋节!今宵酒醒何处?杨柳岸,晓风残月。此去经年,应是良辰好景虚设。便纵有千种风情,更与何人说?
原创
2020年05月24日 23:56
  • 翟码农
  • 每天一首诗
  • 86
  • 0
  • 0

文章标题里这句诗,出自于宋朝周邦彦的《苏幕遮》这首词,全词如下:

《苏幕遮·燎沉香》
燎沉香,消溽暑。鸟雀呼晴,侵晓窥檐语。叶上初阳干宿雨、水面清圆,一一风荷举。
故乡遥,何日去。家住吴门,久作长安旅。五月渔郎相忆否。小楫轻舟,梦入芙蓉浦。


一句诗,好不好,有时候尽管读者说不出个所以然,但也是能感觉到的。


一句诗,一旦和读者以前所见心中所想关联起来,就自然而然的让读者轻松地记住了它。本文要说的这句诗,翟码农认为好就好在这里。


叶上初阳干宿雨,水面清圆,一一风荷举。这句诗一念完,朝阳升起,水面如绿色圆盘似的荷叶一片一片漂浮着,泛着些许晶莹的雨水,其中一些出水的荷花,亭亭玉立,在风中曼妙起舞,就犹如这样的一幅似曾相似的画面感跃如脑海。


要能达到感觉相通的这般境界,诗句的每一个字都少不了要下苦功夫。


同样写荷花,你读“接天莲叶无穷碧,映日荷花别样红”,你就会感到这句诗所给的画面,是一种千千万万荷叶耸立着簇拥着的画面,给人一种蓬勃的生命力的感觉。跟本文里的这句诗比较,稍加体会就感觉本诗里的夏季,相较于《晓出净慈寺送林子方》的夏季,气候要凉快一些。事实上,从诗词里的时间也是可以看出来的。“毕竟西湖六月中”提的是六月,而本诗里却是五月,可见古人文采真是绝伦,才造就了如此精妙的诗词。

原创
2020年05月19日 00:18
  • 翟码农
  • redis
  • 67
  • 0
  • 0


一秒钟800条的采集数据往redis队列里丢,翟码农取出消费,多进程,lrange+ltrim每次500条,redis pipe管道全用上了,还是消费不过来。


之前处理一条数据产生5条警告数据,生成与消费两边速度相当。但当一条数据产生50多条警告时,消费就明显吃力。


为了更好的优化代码,打日志后发现其中有个redis 的incr命令方法严重影响到了性能。


当时多进程运行下,$id = $redis->incr($key)这一行代码耗时240毫秒,如果直接换成$id=1,就是微秒级了。


不难理解,redis由于是单线程的,在对$key进行自增时,防止多进程下生成相同id值,redis必然会对$key进行加锁,如此就相当于每个进程必须等待上一个进程处理自增结束后,才可开始自己的自增操作。


所以实在对代码感到无能为力时,就按这种傻瓜方法来吧,每段都加上时间耗时的计算日志,这样子也不用劳神苦思的想了,直接看耗时结果来找问题。


本文为翟码农个人博客里有关开发经验总结的原创文章,转载请注明出处:http://www.zhai14.com/blog/watch-the-command-of-incr-in-redis-when-run-multiple-process-program.html

原创
2020年05月10日 01:07
  • 翟码农
  • php
  • 106
  • 0
  • 0

昨天和今天两天,都在折腾这个问题,今晚总算是解决了。趁现在记忆还清晰,赶紧复盘一下。


项目分3个部分:

1. python采集传感器数据,lpush到采集队列

2. php从采集队列pop数据, 进行处理,同时提供后台系统接口

3. 后台用的vue框架,实时展现采集过来的设备数据


问题是:

后台有一项设备在线离线的状态数据,在连接上传感器之后,数据总是在在线和离线之间切换,也就是本文题目所说的数据闪烁的bug。


问题涉及在于项目的2、3部分,所以第1部分本人就在此忽略了。


下面就开始复盘排坑经历。


一.页面数据展示有问题,首先想到的就是确保接口是否有问题。


接口的设备在线状态数据,是从redis里设备数据种获取的。

而设备数据其中的状态,是在一个swoole定时任务里写入的。

这个swoole定时任务,就是遍历所有设备,来确定设备的真实状态,具体逻辑如下:


有一个redis hash key,存储设备最新采集的数据,每个设备最多只有一条数据(即可能也没有)

1. 用for循环遍历设备,当前时间,如果比采集数据里的采集时间大于一个设定值(此值后台可设定),就很有可能代表设备离线,否则就必定是在线。

2. 如果最新采集数据里没有当前设备的数据,则必定是离线

原创
2020年04月29日 23:36
  • 羽由
  • 蓝翟红尘
  • 87
  • 0
  • 0

休整了几个月,老本都快啃光了,终于有工作了。


第一天入职就7点起床10点多到家,还很不习惯。


闲了一个多月,骨头都废了,左边胸口腰背处,有钝痛感。


这家公司的开发形式,体验感很不好:数据库用的国产,在windows系统下不支持此数据库驱动;项目部署在另一个城市的局域网里,我还要远程去操作;服务器系统也是用的国产的。


项目涉及到python和swoole,php框架用的yii,哎,感觉需要学习的东西太多了。


早起早睡,努力奋斗吧。



原创
2020年04月26日 10:55
  • 翟码农
  • python
  • 117
  • 1
  • 0

刚开始学python,上次导包出现unresolved reference红色提示,折腾好久一直没解决。

from bs4 import BeautifulSoup


今天重新试了下网上普遍的解决方法:

1. 进入PyCharm->Preferences->Build,Excution,Deployment->Console->Python Console勾选上Add source roots to PYTHONPATH; 
2. 进入PyCharm->Preferences->Project->Project Structure,通过选中某一目录右键添加sources; 
3. 点击Apply和OK即可.

依然不得行。


上次是用pip命令安装的requests和beautifulsoup4这两个包的,也不知道装到哪里去了。


不管上次搞了什么鬼,这次我选择自己手动安装。


首先本人说明一下,本人系统环境Windows10,项目目录和python安装目录不在一起。

python安装目录:

E:\programdata\python\

python项目目录:

F:\python


https://www.lfd.uci.edu/~gohlke/pythonlibs/里下载requests和beautifulsoup文件:

原创
2020年04月25日 21:41
  • 翟码农
  • Linux
  • 128
  • 0
  • 0

reboot重启了服务器后,所有的服务都需要重新启动。


启动php-fpm时,使用如下命令

systemctl start php-fpm.service

提示:

Failed to restart php-fpm.service: Unit not found

即找不到php-fpm这个东东。


网上查询资料,都是ps -ef |grep php-fpm这种方式来查看php-fpm的路径,可是俺的情况是根本就没有启动服务,哪里来的进程供俺查看。


问题的出现,本人猜想是之前更新php版本到7.3时,把旧的php5.4版本删除后,导致默认的php-fpm也被删了。


好在本人上次在/etc/php.ini配置文件里配置了extension_dir目录:

extension_dir = "/opt/remi/php73/root/usr/lib64/php/modules/"


这样才在/opt/remi/php73/root/sbin这个目录下找到php-fpm。


其实用find命令就可以快速解决这个问题的,自己命令敲错了,导致展示遍历文件的效果。

find -name php-fpm


所有有关php-fpm的文件通过在根目录下执行find命令就可以全部查找出来:

原创
2020年04月24日 13:19
  • 翟码农
  • Linux
  • 123
  • 0
  • 0

/etc/profile修改后,导致centos系统命令vi等都失效。


遇到此情况的解决方法:

1.先通过/bin/vi  /etc/profile命令将profile文件还原
2.此时source /etc/profile会报错。如果报错了,就reboot重启服务器试试。


翟码农遇到此问题的历程:

博客也写有快两年了,是时候在首页加个搜索。


elasticsearch支持全文索引,所以希望通过这个技术来实现本人博客的搜索功能。


本人服务器centos系统版本:

>>cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core)


在centos系统里安装好elasticsearch后,elasticsearch服务却无法启动。

报错信息如下:

systemd[1]: Starting Elasticsearch...
Exception in thread "main" java.lang.RuntimeException: starting java failed with [1]


看提示,估摸就是服务器没装jre导致的。因为elasticsearch是用java实现的,需要jre工具,即java的运行环境。

原创
2020年04月23日 21:10
  • 翟码农
  • php
  • 84
  • 0
  • 0

翟码农博客一直用的summernote编辑器写文章的。


以前有时候遇到电脑突然断电,或者网络突然掉线,导致写好的文章不翼而飞了。


痛心疾首过两三次,才下决心优化一下这块的功能。


优化的操作:

在编辑页面,用js的setInterval方法实现每隔1分钟就自动提交文章内容的效果。
为避免对mysql数据库操作过多,每个文章的redis key都设了一个有效时间:10分钟。
当文章的redis key过期了,就把redis里的内容,写入到mysql db里面去。


以上就是之前优化后的情形。


上面优化给如今带来的问题:

当有时候无意打开了同一篇文章的多个编辑页面,就造成两边都在同步更新,就会出现我一直在这边写文章,结果可能却被另一边的内容覆盖掉,就导致我写了好半天,结果和没写一样的效果。


现在针对这个问题,本人又进一步的优化了:

redis里对编辑的文章设置一个key值,当进入编辑页时,设置值为1;当点击保存后,设置值为0;在进入编辑文章的逻辑里,判断是否已处于编辑状态,如果已处于编辑状态,就自动跳转到列表页面。

可是上面的解决方法还是有点瑕疵,当本人进入编辑文章页后,并没有点击保存,直接切换到后台其它菜单页面去了,就导致再次去编辑文章,就永远提示处于编辑状态,而无法编辑了。

原创
2020年04月21日 00:01
  • 翟码农
  • 大学之后
  • 149
  • 0
  • 0

这两天博客都没更新文章了,是因为前天正好突然想着注册个头条号,拍点视频玩玩。


拍完的视频要用剪映app进行剪辑处理,还要配音,并添加字幕,由于以前没玩过,所以一个三四分钟的视频,弄下来却是三四个小时。


下面主要就分享下这两天的收获吧:


1. 视频配音检查同步后,再配字幕。

我剪辑第一个视频时,由于视频前面插入了新的视频,导致视频配音不同步。一般配音有多个音轨,要移动多个音轨上的配音。视频看一遍无误后,再自动识别字幕。我就是好不容易改了字幕,结果与视频不同步,做了好些无用功。


2. 视频片段尽量缩短

头条发生活视频,很多无意义的片段,可以直接删掉,节省用户的时间。所以拍视频时,尽量想好展示内容,然后一点一点的拍摄即可。冗长的拍摄,只会显得很是索然无味。而且素材小,剪辑起来也快捷。


3.百度解决问题

剪辑时发生音频不同步,音频要删除,字幕不同步,字幕要删除等各种各样的问题,这些剪映app都可以做到,所以直接百度找方法就好了,很简单的。


今天拍了个酸菜鱼,我拍了四十个视频,30多分钟,最后剪辑下来就留了3分多钟,所以做了好多镜头剪切的工作,一分多钟的镜头,要表现可能只需要两三秒。如果素材拍短一点,剪辑就会省事,也省时多了。

原创
2020年04月18日 22:51
  • 翟码农
  • Linux
  • 216
  • 0
  • 0

一、安装docker

1.如果已经安装了docker,先卸载:

yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine


2.接着安装yum-utils包

yum install -y yum-utils

因为后面用到的yum-config-manager命令在yum-utils包里。


3.设置仓库

yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo


4.安装docker

安装docker分安装最新版本的和安装指定方式的这两种方式。