web 服务器提供几个接口给客户进行调用,然后,我这边需要统计每个接口的调用次数,并记录每次处理后的结果,哪个客户调用的。
目前有两个做法:
直接在接口处理完业务逻辑之后,直接生成一条数据,插入到对应表中。这样每调用一次都需要插入一条数据。调用次数很频繁的情况下,会不会影响性能?
对于接口调用次数频繁的情况下,目前采用把统计数据,push 到任务队列里,然后另外启动 worker 定时去存放这些统计数据。(目前采用 celery 或者 rq )但是这样又有一个问题,每次运行 worker 的时候,只能处理一条数据,于是,我在 worker 中想把每条统计数据再次存放到 redis 队列中,然后每次都去查询 reids 相关队列中的长度,等到长度达到一定长度,再做批量插入。
在类似 celery,rq 任务队列中,传递图片数据是怎么处理的?直接传递图片 base64 之后的数据?还是传递地址,然后 worker 去下载再处理?
能说说这两种方法的优缺点吗?还有其他更好的方法吗?
PS:本身提供的服务中业务逻辑不需要有数据库相关的操作包括(增删改查)
感谢!!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.