震荡七月(2021)

这个月发生了不少事

7·20 郑州特大暴雨,2021 年 7 月 18 日 18时 至 21 日 0 时,郑州出现罕见持续强降水天气过程,全市普降大暴雨、特大暴雨,累积平均降水量 449 毫米。可怕的暴雨,极罕见的降雨量导致了几十人遇难,天灾。

住房教育大整顿,政策影响还是相当大的,俗话说得好,做什么也不能跟 zf 对着来。一个政策下来,刷刷地,变化快得令人瞋目结舌。就我目前所在的在线教育行业公司,最近政策下来,相关业务马上就停了,大裁员是少不了。有一些大型教育行业公司已经开始出手,听说裁员的裁员,关门的关门,裁员都是 70% 往上。当潮水褪去后,才知道哪些是在裸泳。

中概股的黄昏?中概股最近跌得是有点惨。引爆老美的股市没搞成,把自己炸了个半死……科技确实能给人带来便捷与生活质量的大幅提升。试想要是没有滴滴哈啰这类出行科技公司的出现,现在外面会是怎样?要是没有饿了么美团这类外卖科技公司的出现,现在生活会是怎样?要是没有腾讯阿里这些科技巨头,现在市场是不还是乱如一锅粥?当然没有这些种种科技公司的出现,人们还是照样活。不过当这些出现在我们的日常生活中以后,渐渐得发现我们已经很难再去脱离他们了。我还是坚信科技的力量,只不过要保持一份冷静。

新冠又来了,这次据说变异了,传播更快了,短短几天范围就扩散到了几十个省份,太可怕了。现在管控又严格起来,都不能私自离沪了。

东京奥运会也开始了,也是由于疫情原因推迟了一年,没想到今年疫情还是没有结束。奥运会的吐槽,裁判惊人的眼力。另外,南京要感谢东奥。

写在最后,今年确实是比较难的一年,也许去年说的那句话并不虚。最差的一年,也是未来最好的一年……

共勉。


生活六月(2021)

六月开始了新的生活环境和节奏

六月的天气还没有那么燥热,虽然梅雨天来了但大多时候还不是闷热,可能也与我们长时间在室内呆着有关系吧。

这月去了南通通州,江苏城市发展还是很不错的尤其是苏南。小河道多,虽周边不像浙江一样都是山但绿化面积也是挺大的。

回了一趟家,家里的葡萄还没有成熟,还只是一串串青颗粒挂在枝头,今年又多了几亩葡萄,老爸老妈在这个繁忙的季节感觉还是有点忙不过来。今年温度都还不怎么高,光照也不多,不知道葡萄会怎么样。不过好在每年都有人上门收购,好有好的价格,不好也有不好的价格,省点心省点力,多赚点少赚点,省点事,人不要搞得那么累,身体最重要。

这月底组内的小韩同志也离职了,破公司留不住人。

细雨绵绵,滋润大地。


旅行五月(2021)

其实也不应该叫旅行五月,不过心灵上的旅行也算旅行

五一劳动节难得有五天的假期,天气又不错,便带着小邱踏上了旅途。

说是旅途,其实也就是去了几个地方:家、山、水……

浙江金华,金衢盆地,周边就是山多,有了山自然就有了水。于是便有了很多美景,有了很多避暑胜地。

首先回家,在家呆了两天,在浦江虞宅附近的一个小景点逛了一天,太阳底下还是有点晒的,黑了一圈。回家两天吃了不少肉,这得多谢姐夫,让姐夫破费了。之后我俩便去了杭州,主要逛了逛灵隐寺和西湖,时间确实也是有一点仓促,不过灵隐寺的建筑确实是令我颇为震撼。遗憾没有坐船游西湖,反正也近,以后有得是出游的时间。

感谢小鹏在西湖边请了我们一顿火锅,夜间的西湖也是十分静,只有风声和浪声不时交织一起,拍打岸边的古建筑。西湖的夜景没有那么多的商业气息,多是小镇般的静谧。


可怜的小邱又是蛀牙又是智齿,去了几趟医院终于是把两颗蛀牙给补了,还有两颗智齿待拔。

平日里的医院也是人山人海,每回去医院不管公立私立都是好多人,可见医疗在人们生活当中的重要性。

什么都不比身体健康重要啊。


精神要健康,身体更要健康,适当放松给自己放个假未尝不可。


惊喜四月(2021)

这篇总结其实是差不多要五月底才写的……

四月最好的莫过于寻得了一位好伴侣。

她温柔善良,美丽大方,明辨是非,待我极好,也正是因为处于这般幸福的日子里,我才迟迟没有写出对四月的总结。

虽然我们俩认识时间并不长,但我就有一种感觉很温暖舒服,她为人很不错也不喜整那些个花里胡哨的。我也算是个直肠,有很多地方做得不好也会惹她生气,不过好在她气来得快消得也快,不然可真难到我了。

小妹小我几月,着实可爱。好姑娘可不多,我真幸运能够遇见她,必得好好珍惜!

五一果断带她回家见了父母,父母也是十分喜爱她,直夸她好姑娘俊俏懂礼貌。

生活的新篇章开启了,为了未来为了目标还是得努力努力努力啊。

身边相识的同事一个接一个离去,也不知在这家公司还能呆到何时。


匆赶三月(2021)

刚过完年,组内人员就少了两,即将三……

令人放松、悠闲的二月匆匆过去,转头来便是深夜地铁,沾床就睡的三月。

公司里呆着超过一年的就算老员工了,很快,我就是老员工了……

人员的减少不可避免伴随工作量的增多,再加上项目的紧张,结果就是没有双休的周末和每晚疲惫的身躯。

就这样吧,Q2开始了,Q1又延期了……


事务嵌套使用注意点

最近在项目中需要用到事务嵌套使用,即方法 A 中调用方法 B,A 和 B 都有事务控制,且方法 B 的事务独立于 A,为一个独立新事务。

刚开始用默认的事务类型 PROPAGATION_REQUIRED,结果当然是失败了。后来查找了事务的类型以及事务传播机制,简单列一下如下:

  • PROPAGATION_REQUIRED 表示如果当前事务存在,则支持当前事务。否则,会启动一个新的事务。默认的事务类型。
  • PROPAGATION_SUPPORTS 表示如果当前事务存在,则支持当前事务,如果当前没有事务,就以非事务方式执行。
  • PROPAGATION_MANDATORY 表示如果当前事务存在,则支持当前事务,如果当前没有事务,则返回事务嵌套错误。
  • PROPAGATION_REQUIRES_NEW 表示新建一个全新 Session 开启一个全新事务,如果当前存在事务,则把当前事务挂起。
  • PROPAGATION_NOT_SUPPORTED 表示以非事务方式执行操作,如果当前存在事务,则新建一个Session以非事务方式执行操作,把当前事务挂起。
  • PROPAGATION_NEVER 表示以非事务方式执行操作,如果当前存在事务,则返回事务嵌套错误。
  • PROPAGATION_NESTED 表示如果当前事务存在,则在嵌套事务内执行,如嵌套事务回滚,则只会在嵌套事务内回滚,不会影响当前事务。如果当前没有事务,则进行与 PROPAGATION_REQUIRED 类似的操作。
  • PROPAGATION_NOT_REQUIRED 表示如果当前没有事务,就新建一个事务,否则返回错误。

了解了事务类型以及其传播机制之后,结合业务我当然选择了 PROPAGATION_REQUIRES_NEW

当我以为一切就将迎刃而解之时,debug…,what!!为什么没有生效!!

然后我又在知识海洋中继续搜寻蛛丝马迹,渴求那些曾与我一同有此境遇的可怜人的良方。

最终在几年前的帖子中终于找到了我想要的解决方案:

方法 B 需要写在另一个类中,不能跟方法 A 写在一个类里面,不然就不会生效!

详情可看该文章:spring事务@Transactional在同一个类中的方法调用不生效

简单来说就是: Spring 采用动态代理(AOP)实现对 bean 的管理和切片,它为我们的每个 class 生成一个代理对象。只有在代理对象之间进行调用时,可以触发切面逻辑。而触发切面逻辑才会进入事务拦截器从而加入到事务管理器中让事务生效!

记录一下。


放松二月(2021)

讲真,不上班自由的时间是真的放松!

自打记事以来,今年是在外头过得第一个年。年夜饭就跟平时一个样,哦不对,那还是有点不一样,来上海自做还没有一次性上桌过这么些个菜,丰盛是挺丰盛的。

老妈果然给我寄了好些个年货,我最爱的山核桃还有开心果,感谢老妈!

大过年的在外头也没什么事做,天天凌晨才睡觉,然后睡到中午,起来随便一顿吃又开始坐在电脑前捣鼓。出去看了几场电影,感觉今年留沪的人应该不少,影院人还是挺多的。这几天刷了一遍《灌篮高手》动漫,经典永不超越,一群平凡人为着梦想努力拼搏,太热血了。看完特地又买了个篮球,不免想起了自己小学放学后的篮球时光。已经记不得是我哪一年的生日,那天放学后回家看到桌上有一个崭新的篮球,是爸妈给我的生日礼物。从那天开始,我只要有空就会去附近的篮球场,当时个子小又没什么力气,大多时间都是乱抛乱甩自娱自乐,到后来开始自己拍球抛球。有一说一,当时同龄人中我的个子也不算矮,球技也不错,年少无知一统球场!不过后来上初中后开始就不怎么接触篮球了,所以导致现在虽然能打打球但水平也就那样了……

有梦想谁都了不起!

这几天看完了村上春树的《挪威的森林》,看完很有感触,有时候觉得自己跟渡边是多么得相似。村上这部小说写得很直白露骨,看完可能会有些许的压抑也可能会让你瞬间成长一些。就引用译序中我认为非常能概括此书的一段话吧:其间无数读者来信朝我这个译者手里飞来,每三封就有两封谈《挪威的森林》,或为故事的情节所吸引,或为主人公的个性所打动,或为韵味的别具一格所感染,或为语言的洗炼优美所陶醉。有人说像小河虾纤细的触角刺破自己的泪腺,有人说像静夜如水的月光抚慰自己孤独的心灵,有人说引领自己走出四顾茫然的青春沼泽,有人说让人刻骨铭心地懂得了什么叫成长……

又把《SHOE DOG 鞋狗》看完了,耐克创始人菲尔·奈特亲笔自传,看完后我算是对耐克的历史有了更深刻的了解。整本书看的过程中不像一般的自传吹嘘种种,更像是一本小说,按照时间线将故事娓娓道来,讲述了成功路上的坎坷。总之看的很过瘾,一部体育巨头的成长史。

一眨眼这个年也就这样过去了,又要重复打工人的生活了。


又是一月(2021)

时光追不上白马……

时隔一年,疫情还是没有得到完全控制,去年年前湖北严重,今年河北好像稍微严重一些,难不成今年是要在外头过年了吗?元旦回去倒还是较为顺利,并没有什么额外繁琐的步骤也没有强制要求核酸检测,不知年前会怎样。

今天刚公司年会回来,相较之前参加的公司年会来说规模是更大一些的。不过这又有何用,阳光照样照我脸上……年会占用了周末时间,宾馆住了一晚,说实在的,除了抽奖那会会比较激动,其余也就那样了,在奉贤那边,周边也没有什么好的娱乐地方,也就只能打打牌了。

哪知道形势变得这么快,上海前几天出了几例,黄浦区变成了中风险地区,公司进出都得戴口罩验体验看健康码。上头文件下来进出沪都得做核酸检测还得隔离,这不明摆着过年回不去了嘛,真的得在外头过年了?从小到大记忆中还没有自己一个人在外头过过年,一想到这强烈的孤独感就涌上来。事态都不知道会往哪个方向发展,任何微小的事物都有改变世界的能力。在很多情况下,现状逆着常态走,一个一个意外外力无情助推。“无知”是福,悟懂这个可不容易啊。

差不离了,留沪过年。还好有个会做饭的室友也留沪,不然我得泡面面包吃到吐。本来长大后就觉得过年也就那样没啥劲了,这下倒好,真就成了一个长周末了,一点点年味儿都没得咯。现在想想自己还要在外面漂多久,这个过年就只有老爸老妈两人,为人子却不能陪伴其右,是一种不孝吧。

大家都在改变,社会在改变,国家也在改变。很多方式从未尝试我们也在积极适应。前十年二十年是科技互联网改变生活,现在今后怕很长一段时间就是环境改变生活。这么说确实有一点可怕,就好像是因果,前者发展破坏后者,后者又开始影响生活。

刚跟父母说了过年不回家的事,老妈就说要不要给我寄点吃的,真的很感动。再听她说今年就只有她跟爸两人过除夕了,又很难受。自知事以后还真是没有在外头过过除夕,感触。

时间真的,快得很。


你好,而已

你好,贰壹。 我也不过二五而已。

2020 年是非常特殊的一年,这一年,想必后人们想起都会觉得不可思议。

多灾的世界,多难的中国。


当人们在尽情畅想未来科技的时候,却对病毒无计奈何;

当人们在深信自我足够强大的时候,却被现实无情折磨;

当人们在赌场世界满心欢喜的时候,转身却变成了他人镰刀下的绿韭。


年初,人心惶惶,外面世界纷扰,国人祈祷,愿早日安康。

那时,每日早起睁眼第一件事就是查看疫情动态,由于无法自由出门,在家一待就是两个月。

这一年,也算是过了一个最长的寒假。

而就在 1 月 26 日,黑曼巴遇难的消息传开,随后各大媒体开始证实,朋友圈也迅速扩开这个噩耗。享年 41 岁,科比·比恩·布莱恩特,黑曼巴精神影响了许许多多的人,不说再见。

疫情还未控制,东非地区蝗灾肆虐,数量之多几十年未见,一度导致人们有了当年疯抢粮食的念头。也确实那时候的蔬菜价格涨得很快,再加上非洲猪瘟的发生,猪肉价格直接翻了好几倍,以前的十块左右一斤到了如今的三四十一斤。而到了现在,猪肉价格也没有怎么降下来,人们的消费确实是大头,也难怪这一年的白酒股都疯了。

衣食住行,亘古不变。

喝酒吃药,喝酒开车。

3 月,国际油价暴跌,美国股市熔断了 4 次,巴菲特……

120 天缓冲期过后,美国商务部针对华为及其子公司的芯片升级禁令正式生效。从 9 月 15 日起,台积电、高通、联发科等公司正式“断供”华为。这一天将作为标志性的一天,载入中国芯片及半导体研发历史。

11 月 25 日,国家主席习近平致电约瑟夫·拜登,祝贺他当选美国总统。


这一年发生的事情,会改变许许多多人的观念想法。

这一年走到了现在,人性也总归人性,你是不是也忘记了年初自己定下的目标。

人们都是感性生物,会随着伴随场景氛围不同产生不同的激素,而当激素消褪之后一切也慢慢随之变得平静。

年初我呆在家,网络上电视上都是关于疫情防控,看着生命一直是这么脆弱,于是今年只给自己定了一个目标:活下去!

现在,我实现了这个目标,并可以说完成得很好。


2020,我给自己新添置了几双鞋;

2020,我给自己新添置了几本书;

2020,我给自己新添置了几件衣服;

2020,我给自己新添置了几个手办;

2020,还新加入了两个麝香宝宝生命。

年初的漫长开篇,现在也要走到了结尾。

没有过不去的坎,没有迈不过的沟,年年都有烦心事,就让那些烦心事在此刻都滚蛋吧!

你好,21!


Shell 脚本定时重启项目

是时候解放双手了。

前言

自己很早之前就买了一台阿里云服务器,当时新用户买的时候很便宜后来每年续费简直贵得离谱。要不是我已经装了很多东西,还有我的懒(换服务器还需要重新配置和备案)。当然这跟我下面要说的关系不是很大。

我一直以来用这服务器只是为了挂自己的博客和几个很早之前练手的小项目,结果发现这破服务器总是会把我的项目进程给干掉,等我偶尔访问的时候发现早已经打不开小网站了,相当郁闷。

终于,今天我实在是忍不了了。

解决方案

想了想,最简单的解决方案就是我写个定时脚本去定时重启项目。这下我管你正不正常,直接给你重启了。通过网上资料的搜集和我自己的测试,不一会就搞定了,问题不大(以前也就懒,早应该弄了)。

实现脚本具体如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash

echo "===start==="
tt=$(date "+%Y-%m-%d %H:%M:%S")
echo $tt

# kill
faceshow_pid=$(ps -ef | grep 'faceshow.jar' | grep -v grep | awk '{print $2}')
if [ -z $faceshow_pid ] ;then
echo "faceshow not exist"
else
echo "faceshow_pid: $faceshow_pid"
kill -9 ${faceshow_pid}
echo "faceshow killed"
fi
mishow_pid=$(ps -ef | grep 'mishow.jar' | grep -v grep | awk '{print $2}')
if [ -z $mishow_pid ] ;then
echo "mishow not exist"
else
echo "mishow_pid: $mishow_pid"
kill -9 ${mishow_pid}
echo "mishow killed"
fi

# start
nohup /usr/local/java/jdk1.8.0_171/bin/java -jar /usr/local/jar/faceshow.jar >/usr/local/jar/log/faceshow.log 2>&1 &
echo "faceshow restarted"

nohup /usr/local/java/jdk1.8.0_171/bin/java -jar /usr/local/jar/mishow.jar >/usr/local/jar/log/mishow.log 2>&1 &
echo "mishow restarted"

echo "===end==="

当然还有很多可以简洁的地方,可以慢慢搞。

说明点:

  • $(date "+%Y-%m-%d %H:%M:%S") 格式化当前时间 如:2020-11-29 16:45:01
  • grep -v grep 过滤 grep 自身进程
  • 空格该有的有,不该有的不要有
  • 执行脚本内指定需要写全路径,不然可能会报错找不到某某指令

脚本写好后 用 crontab 定时执行就可以了。

最后

脚本还是很重要的,平时绝大多数事情脚本都可以帮我们实现,科技不就是脚本实现化吗。