java - 在 App Engine 任务队列中使用 POJO

标签 java google-app-engine task-queue

是否可以在 App-Engine 任务队列中使用 POJO?或者值必须始终为字符串?

Queue queue = QueueFactory.getQueue("my_queue");
queue.add(withUrl("/my_worker").param("my_key", obj));

如果我的 POJO 很复杂,以至于 POJO 中的字段之一是 ArrayList 怎么办?

最佳答案

TaskOptions' param 方法有两个重载:一个接受 String,另一个接受 byte[]。 POJO 实现 java.io.Serializable,因此您可以将一个序列化为 byte[],如 Java Serializable Object to Byte Array 所示。 (并在接收时反序列化 byte[] 返回)。

最大任务大小,根据 https://cloud.google.com/appengine/docs/python/taskqueue/overview-push#Python_Quotas_and_limits_for_push_queues , 是 100 KB(因此 byte[] 有效载荷的最大大小必须比它小一些)。如果这对您来说是个问题,您可以考虑将 POJO 作为一个实体存储在数据存储区中,然后只发送相应的 key ...

关于java - 在 App Engine 任务队列中使用 POJO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29451488/

相关文章:

google-app-engine - App Engine 的 dev_appserver.py 日志中 HTTP 状态代码后的数字是什么?

python - python + Google 应用引擎中的自动完成文本框示例

java - Google appengine 为 Multi-Tenancy 应用程序中的所有请求创建延迟队列(/_ah/queue/__deferred__)

java - 给定一串字符时查找所有有效单词(递归/二进制搜索)

java - 调用jvm堆中对象的方法

java - Hibernate - 通过集合选择多个连接

java - 如何在不调用 onPause 和 onStop 的情况下调用 ondestroy() 方法

python - Google App Engine-Ajax 使用 python 从数据存储区刷新

c# - 当文件被锁定时,队列文件操作以备后用

google-app-engine - ERROR : (gcloud. app.deploy) 错误响应:[9] Cloud build XXXXXXXXXXXX 状态:FAILURE