如何不使用大量API请求数量的前提下得到在线用户数量?

国际版、Python云引擎
我想在游戏中得到在线用户的数量,目前的想法是客户端每秒调用一个python云函数,该云函数统计当前在线的用户数告知给该用户。此云函数只通过python操作内存里的dictionary等数据,不会进行数据库的存取。

1 请问这样的情况下每次调用该云函数,是否计为1次API请求?
2 如果在该云函数中,进行了一次engine.current.user调用,是否每次调用都增加1次API请求?
3 如果问题1是计入,显然这个方案不行因为会使用极大量API请求数。请问是否有什么建议的方案?

谢谢!

你好,云函数调用不会导致存储 API 请求数增加。engine.current.user 是从客户端发送的 X-LC-Session header 直接获取的,因此也不会产生 API 请求。

看到您提到了程序会通过云函数获取内存里的数据。这里需要注意一下不同的云引擎实例不共享同一块内存空间,而且重新部署项目也会导致内存中原有的数据被清空。请根据业务实际情况合理安排数据的存储位置。

谢谢您的详细回答。

针对不共享内存数据这部分,如果希望在不同引擎实例中对同一内存数据操作,是不是使用Redis就可以了?

可以的。同一个 Redis 实例可以从不同的云引擎实例访问到。

1 人赞了这个帖子.