目前项目中有一个 python 编写的 TCP 服务器,需要接收到客户端数据后进行解码、分析,对分析的结果(比如客户端已经离线的消息)写入数据库。
所以是要在写数据库的时候直接另起一个线程进行操作吗?或者有没有其他的更好的方式?
1
Yourshell 2019-09-06 16:29:38 +08:00
异步
|
2
lbp0200 2019-09-06 16:34:08 +08:00
python threadpool
|
3
youngce OP @Yourshell #1 所以 tcp 服务器算完数据,直接甩 rabbitmq,然后另外一个线程再来消费,写入数据库是不是也是以一个不错的办法?
|
4
toono 2019-09-06 16:45:49 +08:00
@youngce 我认为你说的是不错的做法,虽然说引入了 rabbitmq,但是对于执行进度和结果都可以按需监控到。如果直接用 threadpool 的话就需要自己设计如何保证任务执行的可靠性,对于人力成本来说还是存在的。
|
6
hspeed18 2019-09-06 18:59:43 +08:00 1
量不大的话同步写也不是不可以
|
7
lolizeppelin 2019-09-07 02:42:04 +08:00
一般来说 要分数据收发线程和数据处理线程
收发线程接收到完整的自定义协议包后,讲数据塞队列里,然后继续收数据 数据处理线程从队列里取数据然后进行处理 |
8
wd 2019-09-08 05:25:25 +08:00 via iPhone
看你处理数据的时候是不是要 block 其他请求吧……
|