我无法解密运营商正在做的事情.我知道它在某种程度上比较了数组,但我找不到它的文档.我也试过> @但这似乎有误.当我搜索"at operator"时谷歌的结果不好,这不是很具体.任何信息将不胜感激.
我也没有(至少我不这么认为)在数据库中定义了任何新的运算符.
SELECT id
FROM organizations
WHERE ARRAY[56] <@ ancestry
Run Code Online (Sandbox Code Playgroud) 我正在使用mirror api开发一个玻璃器皿项目.
我的应用类似于新闻应用,可在文章发布时向所有订阅用户提供文章时间线卡.随着我的用户群的增长,这将成为一个问题,因为,正如应用程序现在所说的那样,它为每个文章卡的每个用户进行一次API调用.根据用户的设置,我们每天最多可以发送50篇文章.鉴于Google每天只有1000个镜像API调用的限制,我已经只有20个用户就可以实现这一目标.我知道当我的应用程序获得批准时,这会增加,但我仍然希望优化我的代码.
问题1:我是否正确假设实施批处理将减少我在此处无法找到的API调用数量:https://developers.google.com/glass/batch 假设我进行一次批量调用以发布单个时间轴项目到我的用户的玻璃时间轴的1000,是否计为1镜像API请求,或1000镜像API请求?如果是后者,(问题1.1)我是否正确假设批处理的唯一好处是减少我的应用程序的流量?
我遇到的问题是,如果用户在批处理运行时从(https://security.google.com/settings/security/permissions)撤消对我的应用的访问权限,则会引发异常并失败.它最终将用户(仍有权限)记录下来并强制重新进行身份验证.从我的测试来看,我不认为它在整个批次中都失败了,所以我不确定它是否将时间线卡交给所有未删除访问权限的其他用户.
目前,在没有批处理的情况下,我能够捕获此错误并在用户撤消访问权限时将其从数据库中删除. 问题2:如何在代码中捕获此错误并确定它对应的用户. 示例代码如下:
def _insert_item_all_users(self):
"""Insert a timeline item to all authorized users."""
logging.info('Inserting timeline item to all users')
users = Credentials.all()
total_users = users.count()
if total_users > 10:
return 'Total user count is %d. Aborting broadcast to save your quota' % (
total_users)
body = {
'text': 'Hello Everyone!',
'notification': {'level': 'DEFAULT'}
}
batch_responses = _BatchCallback()
batch = BatchHttpRequest(callback = batch_responses.callback)
for user …Run Code Online (Sandbox Code Playgroud)