我今天早些时候试图将threading.Condition子类化,但它没有成功.当我尝试子类化threading.Condition类时,这是Python解释器的输出:
>>> import threading
>>> class ThisWontWork(threading.Condition):
... pass
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Error when calling the metaclass bases
function() argument 1 must be code, not str
Run Code Online (Sandbox Code Playgroud)
有人可以解释这个错误吗?谢谢!
我想在Java Google App Engine中这样做
if(developmentMode)
foo();
else
bar();
Run Code Online (Sandbox Code Playgroud)
有谁知道这样做的好方法?
丹尼尔
我需要以编程方式将常规简报和小批量发送到10k强的邮件列表.
我们目前正在导出我们的列表,然后使用Campaign Monitor的Web界面来创建和发送新闻稿.Campaign Monitor很棒,但它太贵了.仅向整个列表发送一封电子邮件需要花费105美元,因为他们按"每个广告系列"收费,所以发送较小批量的邮件会更加昂贵.
我有两个要求:
我最好的选择似乎是使用SendGrid(或其他东西?).他们似乎给你一个SMTP服务器,他们担心要求1中的所有废话.如何实际使用它以编程方式发送电子邮件?循环列表和mail()?好像那样效率不高.如果您有使用SendGrid的经验,请分享.这仍然不是非常便宜 - 80美元/月 - 但比CM好.
或者,我应该开始将"云"视为一种解决方案.它似乎会更便宜 - 至少我会为我正在使用的东西买单,但它和你自己的一样吗?我是否必须担心要求1中的垃圾?
或者我完全错过了一些其他更简单的解决方案?我真的需要帮助可视化我的选择.
我想知道如何以编程方式使用YUI3触发更改事件 - 我向一个选择框节点添加了一个更改侦听器:
Y.get('#mynode').on('change', function(e) {
Alert(“changed me”);
});
Run Code Online (Sandbox Code Playgroud)
脚本中的其他地方想要触发该事件.当然,当用户更改浏览器中的选择框值时,它可以工作.但我已经尝试了很多方法来以编程方式启动它,但没有一种方法可行.包含:
// All below give this error: T[X] is not a function (referring to what's called in .invoke(), // in the minified javascript
Y.get('#mynode').invoke('onchange');
Y.get('#mynode').invoke('change');
Y.get('#mynode').invoke('on','change');
Y.get('#mynode').invoke("on('change')");
/* Tried using .fire() which I found here:
* http://developer.yahoo.com/yui/3/api/EventTarget.html#method_fire
* Nothing happens
*/
Y.get('#mynode').fire('change');
/* Looking around the APIs some more, I found node-event-simulate.js:
* http://developer.yahoo.com/yui/3/api/node-event-simulate.js.html,
* which by its name would seem to have what I want. I tried:
* Error: simulate(): …Run Code Online (Sandbox Code Playgroud) 目前我正在开发新的App Engine应用程序.
不幸的是,即使对于相对较小的用户数,我的应用程序似乎也使用了大量资源.所以我需要确定它的瓶颈并优化它们.
目前我的应用程序在memcache中缓存模型,如下所示:
memcache.set("somekey", aModel)
Run Code Online (Sandbox Code Playgroud)
但尼克斯在http://blog.notdot.net/2009/9/Efficient-model-memcaching上的帖子表明,首先将其转换为protobuffers效率要高得多.但经过一些测试后,我发现它的尺寸确实较小,但实际上较慢(约10%).
其他人有相同的经历,还是我做错了什么?
测试结果:http://1.latest.sofatest.appspot.com/?times = 1000
import pickle
import time
import uuid
from google.appengine.ext import webapp
from google.appengine.ext import db
from google.appengine.ext.webapp import util
from google.appengine.datastore import entity_pb
from google.appengine.api import memcache
class Person(db.Model):
name = db.StringProperty()
times = 10000
class MainHandler(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
m = Person(name='Koen Bok')
t1 = time.time()
for i in xrange(int(self.request.get('times', 1))):
key = uuid.uuid4().hex
memcache.set(key, m)
r = memcache.get(key)
self.response.out.write('Pickle took: %.2f' % …Run Code Online (Sandbox Code Playgroud) 我可以在AppEngine土地上使用一些帮助......
使用[Python] API我从文档中创建这个例子的关系:
class Author(db.Model):
name = db.StringProperty()
class Story(db.Model):
author = db.ReferenceProperty(Author)
story = db.get(story_key)
author_name = story.author.name
Run Code Online (Sandbox Code Playgroud)
据我了解,该示例将进行两次数据存储查询.一个用于获取故事,然后一个用于尊重作者以便访问该名称.但是我希望能够获取id,所以做类似的事情:
story = db.get(story_key)
author_id = story.author.key().id()
Run Code Online (Sandbox Code Playgroud)
我想刚刚得到的参考ID.我不想依赖(因此查询数据存储区)ReferenceProperty值.
从阅读文档说它
ReferenceProperty的值是一个Key
这让我觉得我可以在引用的值上调用.id().但它也说:
ReferenceProperty模型提供Key属性值的功能,例如自动解除引用.
我找不到任何可以解释何时进行此引用的内容?
在ReferenceProperty的值上调用.id()是否安全?
是否可以假设调用.id()不会导致数据存储查找?
在Google App Engine上使用Python查询数据存储,可以使用GQL或Entity.all()然后对其进行过滤.所以例如这些是等价的
gql = "SELECT * FROM User WHERE age >= 18"
db.GqlQuery(gql)
Run Code Online (Sandbox Code Playgroud)
和
query = User.all()
query.filter("age >=", 18)
Run Code Online (Sandbox Code Playgroud)
现在,也可以按键名查询事物.我知道在GQL中你这样做
gql = "SELECT * FROM User WHERE __key__ >= Key('User', 'abc')"
db.GqlQuery(gql)
Run Code Online (Sandbox Code Playgroud)
但是你现在如何使用过滤器来做同样的事情呢?
query = User.all()
query.filter("__key__ >=", ?????)
Run Code Online (Sandbox Code Playgroud)