我目前正在运行(免费)Google App Engine实例,我需要手动重启.但是,在我的项目的"实例"选项卡中,它只是为我提供了"查看日志"或"关闭"的选项.
关闭实例不是一个选项,因为我不想手动将应用程序重新部署到google appspot.这不是一个选项,因为我需要从多个位置(甚至在路上)这样做,我的项目位于一台台式计算机上.
我希望能够重新启动实例的原因是因为我的Java应用程序中的缓存.我缓存某些用户和数据,以便我很少需要调用数据存储区.
但是,当我想从数据存储中删除某些记录时,它们仍然存在于我的应用程序的缓存中.这意味着用户可以访问已经手动删除的数据.
我知道可以编写一次性管理应用程序来清除缓存,但这不是我希望解决这个问题的方式.它应该比那更容易.
有没有办法重新启动正在运行的实例,有效地重新启动我的Java应用程序,而无需将整个应用程序重新部署到谷歌appspot?
为什么这个代码
int[] a = {
0,
1,
1_0,
0_1,
1_0_0,
0_1_0,
0_0_1
};
System.out.println(Arrays.toString(a));
Run Code Online (Sandbox Code Playgroud)
产出这个输出[0, 1, 10, 1, 100, 8, 1]?
为什么输出中有8?下划线是否添加了一些秘密功能?
我正在使用GAE(Google App Engine)数据存储来存储人员.
每个人都有一个名字,一个唯一的标记,他们收到的消息列表(字符串)和他们完成的测试列表(字符串).这些都是支持的类型.
但是,我还想存储一个包含String键和String值的HashMap,以及有关它们已完成的测试的信息.
我正在尝试保存的示例Map(请注意,这是示例数据,而不是实际数据)
[
<'test_easy_1', 'completed in 3 minutes'>
<'test_easy_2', 'completed in 5 minutes'>
<'test_hard_1', 'completed in 15 minutes'>
<'test_hard_2', 'completed in 3 minutes.. Did you cheat?'>
]
Run Code Online (Sandbox Code Playgroud)
我想拯救这样的人
@Override
public boolean savePerson(Person p) {
if (p.getEntity() == null) {
return false;
}
p.getEntity().setProperty("name", p.getName());
p.getEntity().setProperty("token", p.getToken());
p.getEntity().setProperty("messages", p.getMessages());
p.getEntity().setProperty("completedTests", p.getCompletedTests());
p.getEntity().setProperty("testInformation", p.getTestInformation()); // does not work
DatastoreServiceFactory.getDatastoreService().put(p.getEntity());
return true;
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题:
如何将HashMaps作为对象属性保存到数据存储区?
我希望以一种方式执行此操作,我不必为HashMap创建整个类和新的数据存储区索引.但是,如果这是唯一的方法,我想知道如何这样做.谷歌搜索这并没有产生明确和明显的方式来处理这种情况.
考虑以下代码
public class Test {
public static void main(String... strings) {
System.out.println("String, " + false);
System.out.println("String, " + getFalse());
System.out.println("String, " + new TestClass());
System.out.println("String, " + (new TestClass() == null));
System.out.println("String, " + new TestClass() == null);
}
private static class TestClass {
public String toString() {
return "false";
}
}
private static boolean getFalse() {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么最后一次System.out.println打印的输出与其他输出不同?我不知道,这是一个错误吗?是否与plus运算符有关?StringBuilder?