Google app engine Google应用程序引擎拉队列的参数和负载之间的差异
我的项目基于GAE/J,并利用了最近启动的PULL队列,但我认为这个问题也可以应用于Python 基本上,当我将一个任务放入PULL队列时,我需要设置一些任务参数,以便后面的使用者拾取它 我以两种方式在params设置中实现了: 1) 通过使用Google app engine Google应用程序引擎拉队列的参数和负载之间的差异,google-app-engine,pull-queue,Google App Engine,Pull Queue,我的项目基于GAE/J,并利用了最近启动的PULL队列,但我认为这个问题也可以应用于Python 基本上,当我将一个任务放入PULL队列时,我需要设置一些任务参数,以便后面的使用者拾取它 我以两种方式在params设置中实现了: 1) 通过使用param(): 2) 通过使用有效负载(): 这两种方法都是有效的,但是,我想知道的是这两种方法之间的区别,以及哪种方法应该是效率或便利性方面的首选方法 我可以看到,通过使用param(),可以轻松设置多个参数,也可以轻松地为使用者检索参数。 但对于一个
param()
:
2) 通过使用有效负载()
:
这两种方法都是有效的,但是,我想知道的是这两种方法之间的区别,以及哪种方法应该是效率或便利性方面的首选方法
我可以看到,通过使用param()
,可以轻松设置多个参数,也可以轻松地为使用者检索参数。
但对于一个参数的情况,有效负载可能会更方便,因为它可以保存代码以捕获使用者提取参数时抛出的异常
然而,我很高兴知道除了我所说的外,这两者之间还有什么区别。根据,我想说,在你的情况下是完全相同的
在拉取请求中,如果已指定有效负载,则不要指定参数。参数编码为application/x-www-form-urlencoded并设置为有效负载
TaskOptions的.param()和.payload()函数存在差异。您可以按如下方式使用这些功能:
TaskOptions taskOptions = TaskOptions.Builder.
withMethod(TaskOptions.Method.PULL);
taskOptions.param("param", paramValue);
taskOptions.param("param2", paramValue2);
TaskOptions taskOptions = TaskOptions.Builder.
withMethod(TaskOptions.Method.PULL);
taskOptions.payload("payloadValue");
int length;
byte[] buffer = new byte[1024];
while ((length = inputStream.read(buffer)) >= 0)
byteArrayOutputStream.write(buffer, 0, length);
if (byteArrayOutputStream.size() > 0){
return byteArrayOutputStream.toByteArray();
}
return null;
}