2025-09-06 13:02:19
接着上一篇内容 最近真是祸不单行,我计划的周末全泡汤了,我在上周隧道超速的时候被扣了12分,今天周六去交警大队处理。
离我这最近的是交警八大队,我也是早早就去了,早上刚九点出头就到了。前面柜台人员给我打了个处理凭证,让我去办公区找里面人处理,我到了楼上办公区,上面只有一个值班人员在场,他给我说民警不在(不知道这玩意交警和民警有区别?),今天没法处理,得要周一。
但是周一的话,我还得请半天假,关键还是时间,时间又得往后拖,什么事情都是,所以我转头去了一个交警大队,离我附近不远还有个交警四大队,交警四大队的柜台人员操作时说提示不能操作,得要我去事发机关处理(我超速所在地,交警五大队,距离十几公里呢),我说我刚才去了我附近的一个交警大队(交警八大队),他们说可以处理,但是要周一等民警过去,柜台人员让我去办公区问下他们人员可以不可以处理。
这里的民警是在场的,他看到二话不说也是帮我处理了,处理到一半签好字什么的,他又说不行了,我这个因为早上在八大队打了处理凭证,只能之前那个大队处理。
接着我又返回到那个最初处理的那个交警八大队,看下他们能不能取消,好让我继续在这个交警大队处理,毕竟这里有人值班嘛,后来当然就是不行了。
回到家里,本来想周一上午请个假的,但是越想越不对劲,为啥别的大队都有人值班,你这个就要周一处理。所以我就打了12315投诉,投诉这个交警八大队的人疏忽职守,明明今天也是你们上班的时候,为什么别的大队有人你们就没有,接着也是很快,之前交警大队办公区的那个值班人员联系了我,说你这离得近的话要不再来看看,我这给你看看能不能办,主要我这也不确定;意思就是说他业务流程不清楚,之前要我周一过来是因为等周一熟悉流程的人过来给我处理,现在可以过去她试试看。
我给他说下午再去看看,毕竟我这事有什么流程我觉得也不复杂,你不熟悉流程可以给之前同事打电话,就这么推脱不算疏忽职守是什么,毕竟我请半天假去处理那也是钱。
先就这样,下午处理后继续更新。
第二天的更新
昨天下午过去也是给处理了,签了好几个单子,手机上交了1000块钱。后面就是学习了,总共是5天,线下最少两天,线上就是看视频了,中途可能会有拍照,每天3小时;线下的就比较头疼了,还要请两天假,不知道线下学完当天能不能考试,不然还得再请一天假,这么算下来我今天请的假蛮多的了,这也是我之前比较愤怒的原因吧,毕竟打工牛马假也不是那么好请的。
2025-09-02 00:04:32
今天,也就是9月1号周一,我本来是请了个假了,加上周末是三天,本来是打算在家肝论文的。
当然也不能一直宅在家里,所以还是决定出去除透透气,周六的下午(8月30号)我去爬了紫金山,这两天天气还真是不错,有点小雨,但是对爬山没什么影响,反而很舒服。
到山顶的时候,可能是因为昨天吃的烧烤有点问题,去上个厕所,出来的时候手机忘了拿,回去的时候,也就几分钟,手机被人拿走了。因为没有手机,我开车过来的,车钥匙也是手机上的,家里有个备用机,最后就去派出所联系了下警察,在那等我妈给我送手机过来。
说到联系警察也是一堆要吐槽的,我没手机也没法报警,问了两个路人手机能不能帮我打下110,他们觉得这玩意后面还有一堆回访,不愿意借给我,也理解,我又去地铁求助一下他们,地铁的工作人员上班没有手机,到是有值班警察,他说这不在他职责范围内,他们只能管地铁这边,而且他们身份特殊,手机也不方便报警,就给我查了下附近的派出所,我自己走过去的,也是等了很长时候,这个派出所说山上不归他们管,把我送到中山陵的派出所,我又在哪里等了很久。
我妈给我手机送到的时候,我定位发现我的手机位置显示在浦口的一个公寓,立马开车赶了过去,后面怎么说呢,中山陵这边警察说厕所门口的路边没有摄像头,浦口那边警察说不知道人长啥样也不好排查,所以这事可能就这样结束了,我只能回家去了。
当天晚上我的手机定位就不显示了,我觉得他可能把我手机卡拔了,后面知道是我的手机重启了(小米也真是,为什么重启了卡还在,就不能继续联网定位)。
不过第二天的时候,意外的看到了定位,和昨晚的有些偏移,我觉得可能是什么手机店什么的,决定过去看看。半路,我妈说刚才给我的那个手机打电话通了,本来我在手机上留的言,手机还我给你200块报酬吧,那个人说200块不够,要500,我一听这还能讨价还价,之前还能说是你捡到的手机,现在就已经算是非法侵占他们财产了吧。
后面我也是到了小区附近,发现定位是小区旁边工地,以为是当地工人拿的,然后也是拨打了110,把我说的事情讲给了警察。警察到了也真是离谱,反正当头就是先把我说了一顿,让我讲讲我这问题,别人捡到你手机,你给别人500报酬不是很正常的吗,真的是离谱,关键他这把我手机拿走了不还,也能叫做捡到真的是离谱。
后面没啥招,警察说要不你就把钱给他吧,我又打了电话,也是想想算了,把钱转了他,我想跟他见个面,好让警察逮住,他也是说远什么的,反正我已经在他楼下了,就让他寄快递吧。接着让警察和我一起在快递站附近蹲找这个人,反正一会他会过来寄快递,警察又说抓到了又怎么样之类的,这种事情给点也正常之类的巴啦啦吧,什么又你走法院去起诉人家,我觉得又不够立案的什么的,就算了让警察回去了,他们也不想蹲。
我还是在那蹲着了那个人,因为我也不想等半天才收到我的手机,中途还在跟驿站的工作人员聊了会天,他说他之前手机丢了是一个送外卖的捡到,给他送过来了。这人为了500块钱也真是恶心,倒不是500块钱的事,我要是炒股啥的亏了5000,我都觉得没什么,意料之中,主要是手机没了后面也是各种狼狈和不方便,纯属意料之外,主要是浪费了我时间,之前的计划全被打乱了,还有下面这件事。
本来这个事情就这样结束了,亏了500块钱就这样吧,后面警察也打来了一些回访,当然我就接到了一个,因为熬夜当时也没起床。
今天下午收到一个短信,那天晚上我去找手机的时候,经过隧道超速了,扣12分罚1000块钱,还要重考科目一,又是浪费了我不少时间,要是国庆考不好,也不能开车回家了,或者让我妈开,真的崩不住了。
昨天打了一晚上的游戏,早上尽量收拾了下情绪,又全出来了。我觉得事情不能就这么算了,倒不是那个拿我手机的人,那是其一,警察各种和稀泥也是,扣我钱的时候这么积极,真轮到给屁民办事的时候,屁用没有,亏全让我吃了。我拔打了12389公安举报,我觉得没什么用,他们也不会处理什么,但是我还是要打,起码让他们知道我很在意这件事。
结束也是收拾下情绪,论文基本上泡汤了,最近这段时间,要去跑交警那处理,还是重新学习考试,争取国庆能搞好吧,吃一堑长一智吧,以后遇到同样的事还是要收拾好情绪,避免这种因为情绪导致的”连环事故“,还有就是警察并不像是小学课本中的那样,不要对警察有什么光环,报警之后符合条件一定要立案或者执法回执之类的记录,不要那种我帮你登记一下,不然后续都不好处理。还有为了安全,手机可以加上SIM卡密码,防止别人用你手机号接收验证吗之类的,我当时没有,也没去冻结卡,打算第二天补办一个手机卡,当时也不怕他用我手机卡干啥,因为到时候就是另外的案件级别了。
不幸中的小确幸就是最近体重又少了,BMI到标准水平了,然后锻炼了下身体,拍了几张照片。
2025-08-31 15:19:33
最近公司定时任务越来越多,新的需求也在增加,新写了代码就要上线,上线重新部署的时候,如果这时候有其他定时任务或者异步逻辑在处理,这个处理就会被中断,而中断自然就会影响到业务。
之前我是加了个页面监控当前正在运行的任务,在每次部署的时候,看看现在有没有其他业务在运行,如果有的话,就等一会这个任务结束再部署。
不过最近也是有一些任务耗时特别长,可能你需要等它一天,如果这时候重新部署打断了这个任务,就会影响到业务,出现比如用户的扣款日没有扣款,导致一些订单违约之类的,总之让用户感知到肯定是不好的。
所以,如果重新部署后恢复执行呢,一个是定时任务的代码也要经过适配,需要确认不会出现重复执行的情况,也就是代码也要有幂等的设计;然后就是多余的系统消耗,之前已经执行了10小时了,快执行完了,你这一打断,又需要重新来了;还有就是最重要的,可能会忘记,自己不经意间打断了正在进行的任务,后面用户投诉过来才想起了,就不好了。
还有就是代码幂等适配这个问题,这种约定俗成的规则在编程语言中也很常见,不过在这里我不太喜欢这种设计,他更多是一种君子协议,万一有人没有遵守,或者说忘了什么的,到时候逻辑就会有问题,既然是写 Java 的,相比 JS,Java 这种强类型要的不就是编译期间确认问题吗,所有我更倾向于定义一个接口之类,强制要求实现一些方法,来实现逻辑的中断和恢复。
所有就有了接下来的想法,能不能设计一套可以中断然后重新恢复的底层框架,让上层应用可以在此之上写业务逻辑,这些逻辑就可以支持随时中断,在后面条件允许的情况下恢复执行。
既然是中断,就需要知道在哪里中断,然后保存上下文,下次从这里恢复。
这里就不得不说下 Java 的 InterruptedException
,写 Java 的肯定知道 Threa.sleep(100L)
这种线程休眠必须要捕获这个异常,因为当前线程运行时可能会被其他线程触发中断,必须要处理中断逻辑。什么时候会触发这个中断呢,比如当你调用线程池的 shutdownNow
方法时,当前线程池运行的线程都会被标记为中断,对于此时线程逻辑来说,就应该考虑退出了。
通常,当你运行一个异步任务,任务里涉及到循环或者 IO 这种耗时的工作,都可以考虑适当判断中断,来让系统关闭时及时退出。例如:
for (int i = 0; i < 100000; i++) { //业务逻辑 if (Thread.currentThread().isInterrupted()) { // 线程已经被中断,这时候需要清理环境,及时退出 break; }}
如果没有这种判断的话,当你 kill 这个进程的话,可能就要卡很久,这时候虽然可以强制杀死,但如果数据损坏呢,所以考虑这种情况可以让代码更加健壮。
再说回之前的问题,我一开始想到的有个 Task 接口如下。
interface Task{ void run(Context context);}
context
为任务上下文,业务可以把当前执行情况保存到上下文中,如果中途发生了中断,下次恢复执行可以传入相同的上下文,实现任务继续。但是想了想还是太乱。
后面想到了 Kolin,Kolin 的协程可以在指定代码触发中断,然后切换其他协程,后面也可以恢复回来,也是保存了上下文,不过这个就是更底层的保存,我想我如何可以用同样的代码,精准的知道在字节码什么位置中断任务,然后把任务的堆栈之类信息序列化保存,后面需要时再恢复对应堆栈,继续执行,不就可以完美解决了,而且还是几乎业务无感的,只需要在一些位置打上标记即可。
不过这种方法需要修改字节码,还是颇有难度,我又去看了看有没有 Java 的其他协程框架,看到一个很有意思的,不是协程框架,叫 RxJava
RxJava
可以实现java的流式计算,像是下面这种,
Flowable.range(1, 10) .flatMap(v -> Flowable.just(v) .subscribeOn(Schedulers.computation()) .map(w -> w * w) ) .blockingSubscribe(System.out::println);
AtomicInteger count = new AtomicInteger();Observable.range(1, 10) .doOnNext(ignored -> count.incrementAndGet()) .ignoreElements() .andThen(Single.just(count.get())) .subscribe(System.out::println);
import io.reactivex.rxjava3.schedulers.Schedulers;Flowable.fromCallable(() -> { Thread.sleep(1000); // imitate expensive computation return "Done";}) .subscribeOn(Schedulers.io()) .observeOn(Schedulers.single()) .subscribe(System.out::println, Throwable::printStackTrace);Thread.sleep(2000); // <--- wait for the flow to finish
RxJava 让代码以一个个消费者的形式异步流式执行,可以实现例如上面这些例子,可以让执行代码块在后台执行,然后回到主线程获取结果,这在一些 UI 场景例如安卓可能会有点用;
感觉和我想实现的想法差不多,复杂的逻辑通过这种方式可以拆分成很多子逻辑,他们以 Lambda 块,也就是匿名类的方式编写,也不需要修改字节码,他们本省就是独立的;同过响应式流的方式传递运行数据,也就是上一个代码的执行结果,通过流的参数向下传递,这时候我在框架这边,就可以截胡了,把相应数据进行保存,同时也可以标记当前执行到流的哪一步了,即使是循环这种场景(参考上面的 range
例子),我甚至可以判断当前循环到哪里,这时候就可以在任务需要中断的时候,保存这些信息,然后在系统恢复的时候,拿着之前保存的信息,判断执行流的位置,之前已经执行的就跳过,跳到上次中断的地方,继续执行。
对于数据库相关操作,可以强制使用事务来保证多次执行的可靠性,同时可以设置相关回滚的逻辑。
这种想法会对逻辑影响蛮大,之前的业务代码就需要重写。不过我想单独写一个库封装这种操作,对于使用这种方式的任务就是支持中断的,同时之前老写法的类就是不支持中断的。我觉得现在任务还是有挺多这种场景。
现在还是停留在想法这一阶段,我记得安卓也是专门有后台任务这个概念的,系统有资源的时候才会执行,可能以各种情况暂停执行,后面也可以去看看安卓的这个设计是什么东西。
2025-08-17 22:41:47
就在刚才,我正在晾衣服,直接一个虫呼我脸上,也不知道什么虫,感觉像是蝙蝠;我赶紧衣服一扔进屋关上了阳台门,那个虫感觉是看到了光还是什么,撞了两下门,吓死我了;刚才他还在唧唧叫,感觉是挤在门缝里一样,我拉上了门帘,劝它断了这个念想,衣服也不敢凉了,明天重新洗一下吧,白天虫子一般不怎么出没。
我这个人还是比较胆小的,之前房子里也是进了一个什么蛾子,我拿个扫把在那赶,最后也不知道它跑到那里去了,我只能心惊胆战的睡下去,最近也没见那个蛾子,感觉它不太可能飞出去,就怕哪天我收拾家里时突然掉下来一个虫子尸体,之前蟑螂就是的,一天心情都不好了。
我住的这个是在公寓一楼,价格相比3楼以上,一个月便宜了600块钱,平时出门不用做电梯,还是比较方便的。公寓物业费挺高,相对的环境还算不错,所以说一楼的缺点主要就是这个,我的阳台旁边就是绿化,难免少不了虫子,尤其是晚上开灯;明天打算买一个纱网了,直接把阳台封起来,免得以后心惊胆战。
我又听见外边声音了,赶紧熄灯睡觉了
更新,是下面这玩意,今天到家发现已经死了
2025-08-05 21:51:06
之前也是久闻cj大名,这次还是第一次过来。
刚进去看到一些品牌在做一些类似关注抽奖的活动,刚开始觉得没必要,后面就是一发不可收拾,跟朋友光去排队抽奖去了,像是广场舞大妈排队领鸡蛋,这次回去也是拎了一大包乱七八糟的东西。
漫步者还挺可爱的包。还在他们家抽中了一个鼠标
属实抽象,他们家展台很大,看起来就很有钱的样子,还抽了包粉,口味一般。
巫师
巫师
2077
akko
sony
三连
跟京东小姐姐的集邮
领克03
幻兽帕鲁
挺逗的手绘
“我是自愿干活的“
是兄弟就来砍我
众
外传
2025-07-28 17:33:42
虽然博客也是一直有相册页面,奈何不是专业点的工具,上传图片大小都有限制,而且不支持exif相关信息,所以一直都没有展示,还是部署了个独立的画廊页面,你可以在导航栏看到地址。
感觉整理的美观度还行。
除了基础的图片展示之外,由于这个项目还是比较的简单,没有版权相关信息展示,所以就用了腾讯云的数据万象的自动化流水线,在上传图片到 gallery 目录时,自动给图片加上版权水印,就像你在上图看到的一样。
不过这个水印也是有个问题,只支持绝对大小,没法限定最大大小,图片比较小时候水印可能就看着非常大,影响观感。
后面会把自己拍摄的一些东西逐步上传过去。
这个画廊项目的地址是PicImpact,之前也看到个比较好看的画廊项目,不过由于没有管理后台之类的,遂放弃,感兴趣的也可以看看,afilmory。