Jac*_*cob 3 java google-app-engine jdo
我刚刚测试并将我的应用程序重新部署到测试实例,它工作正常,然后我更改了应用程序ID并重新部署到我的生产实例,我得到了一个索引问题.我将来如何避免这种情况?我去努力测试它,它工作正常!
Uncaught exception from servlet
com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found.. <datastore-index kind="Article" ancestor="false" source="manual">
<property name="tags" direction="asc"/>
<property name="created" direction="asc"/>
</datastore-index>
at com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:40)
at com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall(DatastoreApiHelper.java:67)
Run Code Online (Sandbox Code Playgroud)
管理控制台说它正在"构建"索引.它说现在20分钟!多久时间!?
cor*_*ras 10
当您创建新查询并在本地计算机上首次使用它们时,它们始终是第一次工作.当您第一次在谷歌应用引擎上运行这些新查询时,他们将返回此异常,因为谷歌应用引擎服务器需要一些时间来生成"索引"以允许您的查询正常工作.
我建议您在创建新查询时,在生产环境中为它们提供一次性运行以构建"索引",这样当用户点击它们时,它们就会第一次运行.
其次,在您需要之前手动预先定义查询并将其上传到服务器,意味着当您真正需要它们时,它们可能已经在服务器上构建.
小智 5
我解决这个问题的方法是为我的应用程序维护许多版本.通常是这样的:
当我准备好部署新版本时,我会在此实例中将其上载到版本2.构建索引后,我将版本2设为默认值.这样客户就不会遇到任何停机或错误.
因此,在发布新版本时,您可以在版本1和版本2之间进行交换.
我建议您在上传到已部署的"应用程序"之前,在不同的测试"应用程序"中进行预测试.
| 归档时间: |
|
| 查看次数: |
4737 次 |
| 最近记录: |