
目前项目中有一个 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 量不大的话同步写也不是不可以 |
7 lolizeppelin 2019-09-07 02:42:04 +08:00 一般来说 要分数据收发线程和数据处理线程 收发线程接收到完整的自定义协议包后,讲数据塞队列里,然后继续收数据 数据处理线程从队列里取数据然后进行处理 |
8 wd 2019-09-08 05:25:25 +08:00 via iPhone 看你处理数据的时候是不是要 block 其他请求吧…… |