4
回答
多线程同步多进程日志
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

有两个问题想咨询一下,

1、多线程同步的问题,之前公司有一个后台服务是用多线程框架处理的,然后是一个网络线程和多个逻辑线程,这样当有请求来的时候是不是不能保证请求的时序问题,比如,某一个人在业务中首先有一个加10个钱币的请求,然后迅速有一个扣10个钱币的请求,会不会出现扣10个钱币的请求先返回,然后提示钱币不足?

2、多进程日志同步的问题,当启动多个进程处理逻辑的时候,多个进程都要打印日志到同一个文件,这个怎么处理同步问题,不然的话,肯定会乱序的

<无标签>
举报
曾需缘
发帖于2年前 4回/264阅
共有4个答案 最后回答: 2年前

第1点:你说的这个如果并发的话是存在这样的问题的。这样也没有什么问题。扣钱时,首先钱不够页面上就不允许操作了。

第2点:你可以将日志存入同步的队列中,从对列中取出日志写入文件;

--- 共有 1 条评论 ---
曾需缘1、例子只是我随意举的一个例子,如果有其他情况,不能有顺序错乱的情况,比如,一个用户有10个钱币,第一个扣一个,第二次在扣一个,如果第一次的返回比第二次的返回慢,那最后客户端不是显示9个,实际只有8个了 2年前 回复

1.第一个问题可以在进程中加锁,如果还需要考虑多进程情况,请使用分布式锁

2.为什么多个进程不分别打到不同日志文件,如果非要打到一个文件建议使用队列,实在不行就使用文件锁

--- 共有 1 条评论 ---
行走的班渠我们在做互联网金融,房租分期月付,叫斑马王国,最近在招聘工程师,有兴趣的话加我微信聊,微信号bentleyban 2年前 回复
一个充钱请求没有处理完毕的情况下,扣钱的请求先返回了是一个正常的现象吧。比如你冲QB在你还没充值完毕的情况下,然后去消费,肯定是消费失败啊,要不然你还要控制说,你在充钱操作,无法进行消费啊
--- 共有 3 条评论 ---
曾需缘回复 @Tao_xinhua : 你没看懂我的意思,其实我应该应该是这样吧,是一个请求过去如果没有返回的话,应该是没有下一个请求的,就是上一个请求返回后才有下一个请求发出 2年前 回复
Tao_xinhua回复 @乘虚缘 : 你那个操作数据库的方法要弄成同步的啊! 2年前 回复
曾需缘如果一个用户有10个QB,第一次扣一个,第二次在扣一个,进行了两次操作,如果第一次的返回比第二次的返回慢,那最后客户端不是显示9个,实际只有8个了? 2年前 回复
顶部