小编pro*_*ppy的帖子


30
推荐指数
4
解决办法
2万
查看次数

在Google App Engine中使用@ ndb.tasklet或@ ndb.synctasklet

我有一个POST调用几个tasklet的方法.这些tasklet确实有产量x.put_async(),我的代码中确实有一些.所以我不希望它在所有异步内容完成之前返回.所以我装饰了我的所有tasklet,它们只是小功能@ndb.tasklet.另外,除了我的POST方法,我还有:

@ndb.toplevel
def post(self):
Run Code Online (Sandbox Code Playgroud)

但是,在文档中它声明:

但是如果一个处理程序方法使用yield,那么该方法仍然需要包装在另一个装饰器中,@ ndb.synctasklet; 否则,它将停止执行收益而不完成.

的确,我的方法有收益率.它已经包含在@ ndb.tasklet中.我是用@ ndb.synctasklet替换它还是我同时使用它们(如果是这样,我将如何使用它们)?

另外,请参阅此线程有一些相关性.我也注意到一个问题,我的请求将返回没有任何输出,但是不可重现.它每15分钟左右就会持续使用.我app = ndb.toplevel(webapp2.WSGIApplication([..])只有,但现在我已经添加@ndb.toplevel到主要POST方法,但问题仍然存在.

我应该把@ndb.tasklet方法放在那些方法上put_async()吗?(为了安全起见,我应该把它放在每个方法的顶部吗?这有什么缺点?)

python google-app-engine app-engine-ndb

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

如何开始使用Android Studio C++开发

我在Google I/O 15上听说Android Studio现在支持C++,NDK的官方文档只有Eclipse的说明.

如何使用Android Studio开始使用Android C++开发?

c++ android-ndk android-studio

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

使用Google Drive API的HTML2PDF

是否可以使用Google Drive API将HTML文件上传和转换为PDF而无需用户交互

html pdf google-drive-api

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

适用于Raspberry Pi 3的Android上的UART外设

如何在Android Things上为Raspberry Pi 3使用UART外设?

似乎默认情况下它被分配了linux控制台.

android raspberry-pi raspberry-pi3 android-things

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

Android Things意图启动

在将应用程序部署到Android Things后重新启动时,应用程序无法启动.

是否有特定的意图在启动时启动应用程序?

android android-things

9
推荐指数
2
解决办法
4019
查看次数

在实践中,人力资源开发的"最终一致性"最终如何?

我正在将应用程序从Master/Slave迁移到HRD.我想听听已经完成迁移的人的一些评论.

  1. 我尝试了一个简单的例子,只发布一个没有祖先的新实体,并重定向到一个页面,列出该模型中的所有实体.我试了好几次,总是一致的.他我把500个索引属性再次保持一致......

  2. 我还担心每个实体组每秒限制一个1 put()的声称.我把()30个实体与相同的祖先(相同的HTTP请求,但逐个put)放在一起,这与没有祖先放置30个实体基本没有区别.(我正在使用NDB,它可以进行某种优化吗?)

我用一个没有任何流量的空应用测试了这个,我想知道真正的流量会影响"最终的一致性".

我知道我可以测试本地开发的"最终一致性".我的问题是:

我真的需要重构我的应用程序以处理最终的一致性吗?

或者保留它的方式是可以接受的,因为最终的一致性在实践中实际上是99%的一致性?

python google-app-engine app-engine-ndb

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

App Engine Python开发服务器+ Taskqueue +后端

我正在使用GAE Python 2.7和本地开发服务器.我配置了一个后端

backends:
- name: worker
  class: B1
  options: dynamic
Run Code Online (Sandbox Code Playgroud)

我正在使用默认的taskqueue.一切正常,后端和任务队列在SDK控制台上可见.本地开发工作也开始没有任何错误:

Multiprocess Setup Complete:
Remote API Server [http://localhost:9200]
App Instance [http://localhost:9000]
Backend Instance: worker.0 [http://localhost:9100]
Backend Balancer: worker [http://localhost:9199]
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试通过任务解决后端问题

taskqueue.add(url='/xyz', method='POST', target='worker', params={'a':'b'})
Run Code Online (Sandbox Code Playgroud)

这个错误提出:

ERROR An error occured while sending the task "task1" (Url: "/backend/languages/create_database/") in queue "default". Treating as a task error.
Traceback (most recent call last):
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/taskqueue/taskqueue_stub.py", line 1884, in ExecuteTask
    connection.endheaders()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 937, in endheaders
    self._send_output(message_body)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 797, in _send_output …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine

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

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