gpt4 book ai didi

java - 在 GAE Java 开发服务器上没有未申请的工作的 HRD

转载 作者:行者123 更新时间:2023-11-30 11:32:50 25 4
gpt4 key购买 nike

出于测试目的,我需要使用高复制数据存储区 (HRD) 运行本地 App Engine Java 开发服务器,但没有未应用的作业。我希望通过以下方式在独立单元测试中获得相同的效果:

LocalDatastoreServiceTestConfig cfg
= new LocalDatastoreServiceTestConfig();
cfg.setApplyAllHighRepJobPolicy()
LocalServiceTestHelper helper = new LocalServiceTestHelper(cfg);
helper.setUp();

在开发服务器上,这些类不可用,那么有什么方法可以让 HRD 在开发服务器上没有未应用的作业?

(使用 JVM 标志 -Ddatastore.default_high_rep_job_policy_unapplied_job_pct 为开发应用服务器启用 HRD。如果我将其设置为零,它将禁用 HRD 并改用主从数据存储)

我不能简单地使用主从数据存储,至少在 objectify (4.0b) 中,这会给跨组事务带来麻烦。它们将失败并显示以下消息:cross-group transaction need to be explicitly specified

最佳答案

您可以设置自己的工作策略。这是我使用的:

public class AlwaysApplyJobPolicy implements HighRepJobPolicy
{
@Override
public boolean shouldApplyNewJob(Key arg0) {
return true;
}

@Override
public boolean shouldRollForwardExistingJob(Key arg0) {
// This should be irrelevant because all jobs apply immediately
return true;
}
}

private final LocalServiceTestHelper helper =
new LocalServiceTestHelper(
// Our tests assume strong consistency
new LocalDatastoreServiceTestConfig().setAlternateHighRepJobPolicyClass(AlwaysApplyJobPolicy.class),
new LocalMemcacheServiceTestConfig(),
new LocalTaskQueueTestConfig());

关于java - 在 GAE Java 开发服务器上没有未申请的工作的 HRD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16373664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com