createJobQueue method
- required String jobQueueName,
- required int priority,
- List<
ComputeEnvironmentOrder> ? computeEnvironmentOrder, - JobQueueType? jobQueueType,
- List<
JobStateTimeLimitAction> ? jobStateTimeLimitActions, - String? schedulingPolicyArn,
- List<
ServiceEnvironmentOrder> ? serviceEnvironmentOrder, - JQState? state,
- Map<
String, String> ? tags,
Creates an Batch job queue. When you create a job queue, you associate one or more compute environments to the queue and assign an order of preference for the compute environments.
You also set a priority to the job queue that determines the order that the Batch scheduler places jobs onto its associated compute environments. For example, if a compute environment is associated with more than one job queue, the job queue with a higher priority is given preference for scheduling jobs to that compute environment.
May throw ClientException.
May throw ServerException.
Parameter jobQueueName :
The name of the job queue. It can be up to 128 letters long. It can
contain uppercase and lowercase letters, numbers, hyphens (-), and
underscores (_).
Parameter priority :
The priority of the job queue. Job queues with a higher priority (or a
higher integer value for the priority parameter) are
evaluated first when associated with the same compute environment.
Priority is determined in descending order. For example, a job queue with
a priority value of 10 is given scheduling preference over a
job queue with a priority value of 1. All of the compute
environments must be either EC2 (EC2 or SPOT) or
Fargate (FARGATE or FARGATE_SPOT); EC2 and
Fargate compute environments can't be mixed.
Parameter computeEnvironmentOrder :
The set of compute environments mapped to a job queue and their order
relative to each other. The job scheduler uses this parameter to determine
which compute environment runs a specific job. Compute environments must
be in the VALID state before you can associate them with a
job queue. You can associate up to three compute environments with a job
queue. All of the compute environments must be either EC2
(EC2 or SPOT) or Fargate (FARGATE
or FARGATE_SPOT); EC2 and Fargate compute environments can't
be mixed.
Parameter jobQueueType :
The type of job queue. For service jobs that run on SageMaker Training,
this value is SAGEMAKER_TRAINING. For regular container jobs,
this value is EKS, ECS, or
ECS_FARGATE depending on the compute environment.
Parameter jobStateTimeLimitActions :
The set of actions that Batch performs on jobs that remain at the head of
the job queue in the specified state longer than specified times. Batch
will perform each action after maxTimeSeconds has passed.
(Note: The minimum value for maxTimeSeconds is 600 (10 minutes) and
its maximum value is 86,400 (24 hours).)
Parameter schedulingPolicyArn :
The Amazon Resource Name (ARN) of the fair-share scheduling policy. Job
queues that don't have a fair-share scheduling policy are scheduled in a
first-in, first-out (FIFO) model. After a job queue has a fair-share
scheduling policy, it can be replaced but can't be removed.
The format is
aws:Partition:batch:Region:Account:scheduling-policy/Name
.
An example is
aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy.
A job queue without a fair-share scheduling policy is scheduled as a FIFO job queue and can't have a fair-share scheduling policy added. Jobs queues with a fair-share scheduling policy can have a maximum of 500 active share identifiers. When the limit has been reached, submissions of any jobs that add a new share identifier fail.
Parameter serviceEnvironmentOrder :
A list of service environments that this job queue can use to allocate
jobs. All serviceEnvironments must have the same type. A job queue can't
have both a serviceEnvironmentOrder and a computeEnvironmentOrder field.
Parameter state :
The state of the job queue. If the job queue state is
ENABLED, it is able to accept jobs. If the job queue state is
DISABLED, new jobs can't be added to the queue, but jobs
already in the queue can finish.
Parameter tags :
The tags that you apply to the job queue to help you categorize and
organize your resources. Each tag consists of a key and an optional value.
For more information, see Tagging
your Batch resources in Batch User Guide.
Implementation
Future<CreateJobQueueResponse> createJobQueue({
required String jobQueueName,
required int priority,
List<ComputeEnvironmentOrder>? computeEnvironmentOrder,
JobQueueType? jobQueueType,
List<JobStateTimeLimitAction>? jobStateTimeLimitActions,
String? schedulingPolicyArn,
List<ServiceEnvironmentOrder>? serviceEnvironmentOrder,
JQState? state,
Map<String, String>? tags,
}) async {
final $payload = <String, dynamic>{
'jobQueueName': jobQueueName,
'priority': priority,
if (computeEnvironmentOrder != null)
'computeEnvironmentOrder': computeEnvironmentOrder,
if (jobQueueType != null) 'jobQueueType': jobQueueType.value,
if (jobStateTimeLimitActions != null)
'jobStateTimeLimitActions': jobStateTimeLimitActions,
if (schedulingPolicyArn != null)
'schedulingPolicyArn': schedulingPolicyArn,
if (serviceEnvironmentOrder != null)
'serviceEnvironmentOrder': serviceEnvironmentOrder,
if (state != null) 'state': state.value,
if (tags != null) 'tags': tags,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri: '/v1/createjobqueue',
exceptionFnMap: _exceptionFns,
);
return CreateJobQueueResponse.fromJson(response);
}