小编Ale*_*rdt的帖子

Google App Engine - 缓存生成的HTML

我编写了一个Google App Engine应用程序,以编程方式生成一堆HTML代码,这些代码对于登录我系统的每个用户来说实际上是相同的输出,我知道当代码投入生产时这将是无效的.所以,我试图找出缓存生成的页面的最佳方法.

最可能的选择是生成页面并将它们写入数据库,然后检查给定页面的数据库放置操作的时间与上次更新代码的时间.然后,如果代码比最后一次放入数据库(对于特定的HTML请求)更新,则将生成并提供新的HTML,并将其缓存到数据库.如果代码比上次放入数据库的时间要早​​,那么我将直接从数据库中获取HTML并为其提供服务(因此避免了生成HTML的所有CPU浪费).我不仅希望最小化加载时间,还要尽量减少CPU使用率.

但是,我遇到的一个问题是,我无法弄清楚如何以编程方式检查上传到应用引擎的代码版本何时更新.

我对这种方法的任何建议或其他缓存生成的html方法持开放态度.

请注意,虽然memcache可以在这种情况下提供帮助,但我认为它不是最终的解决方案,因为我真的只需要在代码更新时重新生成html(而不是每次memcache到期时).

html google-app-engine caching

21
推荐指数
2
解决办法
5942
查看次数

如何更改appengine应用程序的所有者(将其移至/出售给新公司)

我已经开发了一个AppEngine应用程序,我将其转移到另一家公司,我希望在转移到另一家公司完成后,从该应用程序中删除我自己的个人访问权限.

我转移所有权的第一步是邀请另一个人作为具有"所有者"角色的管理员.

但是,在传输之后,在管理员/权限控制台中我的名字旁边,我看到消息"无法删除唯一的SMS验证所有者" - 这似乎使我无法从应用程序中删除自己作为所有者.

似乎其他"所有者"无法通过SMS验证其帐户,因为他们已拥有该应用程序的管理员访问权限.

另一个帐户如何获得"SMS验证",以便我们可以从AppEngine应用程序中以管理员身份删除我的帐户?

account verification google-app-engine admin

12
推荐指数
1
解决办法
2418
查看次数

备份AppEngine数据库(谷歌云存储?)

我有一个AppEngine应用程序,目前有大约15GB的数据,在我看来,使用当前的AppEngine批量加载工具备份这个大小的数据集是不切实际的.因此,我开始研究其他备份方式,并且有兴趣了解人们可能用于备份AppEngine数据的实用解决方案.

顺便说一句,我开始认为Google云端存储可能是一个不错的选择.我很想知道是否有人使用谷歌云存储作为他们的AppEngine数据的备份经验,以及他们的经验,以及在走这条道路之前是否有任何我应该注意的指针或事情.

无论我最终采用哪种解决方案,我都希望有一个备份解决方案来满足以下要求:

1)备份速度合理,恢复速度相当快(即如果严重的错误/数据删除/恶意攻击袭击我的网站,我不想在恢复数据库的同时将其关闭多天 - 快速我的意思是小时,而不是几天.

2)来自AppEngine数据的单独位置和帐户 - 即.我不希望有管理员访问我的AppEngine数据的人必须具有对备份数据位置的写入/删除访问权限 - 例如,如果我的AppEngine帐户被黑客入侵,或者心怀不满的员工决定删除我的所有数据,我希望备份与AppEngine管理员帐户分开.

总而言之,鉴于从云中获取数据似乎缓慢/痛苦,我想要的是基于云的备份解决方案,它模仿磁带备份过去所服务的角色 - 如果我要备份磁带没有其他人可以修改该磁带的内容 - 但由于我无法获得磁带,我可以在某处存储我的数据的安全副本,只有我有权访问吗?

亲切的问候亚历山大

database cloud backup google-app-engine storage

10
推荐指数
1
解决办法
1186
查看次数

AppEngine Channel API - 检查频道是否仍处于打开状态的最佳方式(服务器端)

我在AppEngine上构建了一个社交网络/约会类型应用程序,目前我正在添加一个建立在Channel API之上的聊天.但是,我遇到的问题是用户可能会在聊天过程中重新加载或导航到新页面(就像在Facebook中一样).这意味着服务器不容易知道它是否应该为给定客户端生成新的通道ID令牌,或者是否已经为给定客户端分配了通道令牌.

如果有一种方法可以检查(服务器端)特定客户端是否已打开某个频道,那将非常有用.例如,如果我为客户端"Jack"分配了一个"Jack-Jan-21-2010"的频道ID,那么我希望能够在服务器端检查是否已经有一个与该ID相关联的频道"杰克-JAN-21-2010" .这可以通过观察onerror()和onclose()回调在客户端进行跟踪(但有点),但我看不到任何服务器端允许我只检查与给定ID相关联的通道已经开放了.

在使用AppEngine Channel API时,是否有人知道检查(服务器端)是否已打开某个频道的智能方法?

sockets api google-app-engine channel-api

7
推荐指数
1
解决办法
3700
查看次数

Python - 好奇/意外行为 - 运算符的优先级

我最近一直在尝试使用python生成器,我遇到了以下奇怪的行为,我很想知道为什么会发生这种情况以及发生了什么:

def generating_test(n): 
    for a in range(n): 
        yield "a squared is %s" % a*a # Notice instead of a**2 we have written a*a

for asquare in generating_test(3): 
    print asquare 
Run Code Online (Sandbox Code Playgroud)

输出:

a squared is 1
a squared is 2a squared is 2
Run Code Online (Sandbox Code Playgroud)

与以下脚本生成预期输出:

def generating_test(n): 
    for a in range(n): 
        yield "a squared is %s" % a**2 # we use the correct a**2 here

for asquare in generating_test(3): 
    print asquare 
Run Code Online (Sandbox Code Playgroud)

输出:

a squared is 0
a squared is 1
a squared is …
Run Code Online (Sandbox Code Playgroud)

python operator-precedence

7
推荐指数
3
解决办法
292
查看次数

Appengine - 从标准DB升级到NDB - ReferenceProperties

我有一个AppEngine应用程序,我正在考虑升级以使用NDB数据库.

在我的应用程序中,我有数百万个具有旧式数据库引用的对象.我想知道将这些ReferenceProperty值转换为KeyProperty值的最佳迁移路径,或任何其他允许我升级到NDB的解决方案.

(我希望有一些不涉及数据库中所有元素的大规模批处理并基于ReferenceProperty计算KeyProperty的东西 - 优雅的东西会很好)

我想从db.Model升级到ndb.Model的模型示例如下:

class UserModel(db.Model):
    ....

class MailMessageModel(db.Model):
    m_text = db.TextProperty()   
    m_from = db.ReferenceProperty(reference_class = UserModel)
    m_to = db.ReferenceProperty(reference_class = UserModel)
Run Code Online (Sandbox Code Playgroud)

python database google-app-engine datastore

7
推荐指数
1
解决办法
2495
查看次数

使用AppEngine Channel API在多个窗口/选项卡上同步聊天

我正在Google AppEngine Channel API上开发一个聊天应用程序,一个挑战是在多个窗口/标签(在单个浏览器中)运行时协调/同步聊天.

特别是,如果用户在一个窗口/选项卡中打开了一个对话,然后打开一个连接到我的网站的新窗口/选项卡,我希望同一个对话出现在新窗口/选项卡中(这是功能Facebook聊天和其他网站有).我相信这可以通过为用户打开的每个窗口打开一个新频道来实现,并让服务器确保每个频道都有最新的会话数据,但我担心达到限制(如果有一个关于Channel API允许的频道数量 - 我也关注这种方法的效率.

所以,我的问题是:1)从效率/效果的角度来看,为单个用户打开每个窗口/标签的新频道是否有意义?2)我可以向单个用户开放的频道数量是否有任何限制?3)我可以打开的频道总数有限制吗?4)是否有其他更智能的方法来实现我的目标(可能使用cookie或以某种方式从多个窗口/标签之间的单个通道分割数据)?

谢谢你,亲切的问候亚历克斯

api connection google-app-engine chat channel

5
推荐指数
1
解决办法
856
查看次数

使用 WebRTC 从画布元素流式传输视频

我正在使用 WebRTC 进行点对点视频通信,并且我想在将其发送到远程对等点之前将视频过滤器应用于本地网络摄像头视频。

我正在考虑的方法是将本地网络摄像头视频发送到画布元素,我将在其中对视频应用 JavaScript 过滤器。然后我想使用 WebRTC 将视频从 canvas 元素流式传输到对等点。但是,我不清楚这是否可能。

是否可以使用 WebRTC 从画布元素流式传输视频?如果是这样,该怎么办?或者,我是否可以考虑使用其他方法来实现我的目标?

html javascript video canvas webrtc

5
推荐指数
1
解决办法
4221
查看次数

PyCharm - 每次保存文件时运行相应的单元测试

我刚刚切换到使用PyCharm作为我的主要Python编辑器,我很想知道如何配置它以便每次保存文件时都会运行与修改后的文件对应的单元测试?(在浏览文档后,我还没有找到如何做到这一点的明确解释)

python ide pycharm

5
推荐指数
2
解决办法
1610
查看次数

Google App Engine - 跟踪使用的索引

我有一个App Engine/Python/Django应用程序,它在过去一年中已经发展和修改,目前有175个索引.问题是我还没有完成清理/删除不再需要的索引.现在,我不确定哪些索引是活动的,哪些索引基本上已经死了,但我猜大约20%的idex都没用.

我很好奇是否有任何App Engine工具可用于跟踪/计算索引访问次数?

如果没有可用的工具,那么一个可能的想法是重载fetch方法以在每次访问索引时跟踪此信息,但我不确定这是否是一个好主意(可能会减慢速度)我不知道是什么实现这一点的最佳方式可能是.

如果有人已经完成了清理(搜索)死亡索引的经验,我将有兴趣了解您的经历.

python database indexing google-app-engine

3
推荐指数
1
解决办法
215
查看次数

了解经验丰富的C程序员的C++语法

我正在查看MongoDB的源代码,并在函数内部看到以下声明,我不理解并且在我的C编程经验中没有看到.

Lock::DBLock dbLock(txn->lockState(), ns.db(), MODE_X);
Run Code Online (Sandbox Code Playgroud)

我试图理解这个声明在C++术语中做了什么(即我想要理解语法,而不是关于正在发生的功能的具体细节).

这分为两个主要问题:1)函数前面的Lock :: DBLock语句的用途是什么?2)这是函数调用还是函数声明?

c c++

3
推荐指数
2
解决办法
247
查看次数

JQuery选择具有相同值的多个条目的选项

我有一个程序,它有一个下拉菜单,可以从国家列表中进行选择.在此列表中,我选择了将出现在列表顶部的N个"重要"国家,然后列出了所有国家/地区,包括出现在列表"重要"国家/地区部分的国家/地区.

例如:

<select id="id-search-country" name="country"> 
<option value="----">All countries
<option value="AR,,">Argentina       # you can see that this is repeated
<option value="AU,,">Australia
<option value="BR,,">Brazil
<option value="CA,,">Canada
<option value="----">----
<option value="----">All countries
<option value="AF,,">Afghanistan
<option value="AL,,">Albania
<option value="DZ,,">Algeria
<option value="AS,,">American Samoa
<option value="AR,,">Argentina        # repeated here
etc.
Run Code Online (Sandbox Code Playgroud)

当我尝试使用$(#id-search-country).val(current_country_value)设置用户当前国家/地区的值时,JQuery将选择列表中的最后一项而不是选择列表顶部的值.如果它出现在那里,我希望它选择出现在列表顶部的国家/地区值.

有没有人知道如何配置JQuery将当前国家/地区选项设置为"重要"国家/地区(如果current_country_value位于列表的该部分),并且如果尚未显示,则仅从列表的其余部分选择国家/地区在"重要"部分?

亲切的问候

jquery select option

2
推荐指数
1
解决办法
4795
查看次数

Angularjs $编译输入html或元素

我正在阅读"使用AngularJS掌握Web应用程序开发"一书,并在第220页上看到了以下代码:

var element = $compile('<button size="large"></button>')($rootScope)
Run Code Online (Sandbox Code Playgroud)

但是,根据位于http://docs.angularjs.org/guide/compiler的文档,$ compile函数需要angular.element(包装的html)输入.

纯html以及angular元素都是$ compile函数的有效输入(或者这些文档中的一个是不正确的)?

javascript angularjs

1
推荐指数
1
解决办法
1288
查看次数