public class DefaultHighRepJobPolicy extends java.lang.Object implements HighRepJobPolicy
HighRepJobPolicy in which a user-defined percentage of jobs do not
apply. The percentage applies to both new (initial write) and existing (roll forward) jobs. The
user can also provide a random seed, which can be used to make the behavior of this class
deterministic in tests.| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
RANDOM_SEED_PROPERTY
A long that will be used as the seed for the
Random that determines whether or not a
job application attempt fails. |
static java.lang.String |
UNAPPLIED_JOB_PERCENTAGE_PROPERTY
A float >= 0 and <= 100 representing the percentage of job application attempts that will fail.
|
| Constructor and Description |
|---|
DefaultHighRepJobPolicy(long unappliedJobSeed,
float unappliedJobPercentage)
Constructs a
DefaultHighRepJobPolicy. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
shouldApplyNewJob(com.google.appengine.api.datastore.Key entityGroup) |
boolean |
shouldRollForwardExistingJob(com.google.appengine.api.datastore.Key entityGroup) |
public static final java.lang.String RANDOM_SEED_PROPERTY
Random that determines whether or not a
job application attempt fails. Must be parsable via Long.parseLong(String). If not
provided we use the current time (in millis) as the seed.public static final java.lang.String UNAPPLIED_JOB_PERCENTAGE_PROPERTY
Float.parseFloat(String). Any portion of the value beyond two
decimal places will be truncated. If not provided we set the percentage to 0, which yields the
master/slave consistency model.public DefaultHighRepJobPolicy(long unappliedJobSeed,
float unappliedJobPercentage)
DefaultHighRepJobPolicy.unappliedJobSeed - The seed to use for random number generation.unappliedJobPercentage - The percentage of jobs that should fail to apply. This percentage
applies to both new jobs and attempts to roll forward existing unapplied jobs.public boolean shouldApplyNewJob(com.google.appengine.api.datastore.Key entityGroup)
shouldApplyNewJob in interface HighRepJobPolicyentityGroup - A unique identifier for the entity group.true if the new job should apply according to the policy, false
otherwise.public boolean shouldRollForwardExistingJob(com.google.appengine.api.datastore.Key entityGroup)
shouldRollForwardExistingJob in interface HighRepJobPolicyentityGroup - A unique identifier for the entity group.true if the existing job should roll forward according to the policy, false otherwise.