ジョブの優先度の割り当て - Amazon Simple Storage Service

ジョブの優先度の割り当て

各 Amazon S3 バッチオペレーションジョブには、数値の優先度 (任意の正の整数) を割り当てることができます。S3 バッチオペレーションは、割り当てられた優先度に従ってジョブの優先順位を決定します。優先度が高いジョブ (または、優先パラメータの数値が高いジョブ) ほど先に処理されます。優先度は降順に決定されます。たとえば、優先度の値が 10 のジョブキューは、優先度の値が 1 のジョブキューより先にスケジュールされます。

ジョブの実行中にジョブの優先順位を変更できます。また、ジョブの実行中に優先順位が高い新しいジョブを送信すると、優先順位の低いジョブが一時停止して優先順位の高いジョブが実行される可能性があります。

ジョブの優先順位を変更しても、ジョブの処理速度には影響しません。

注記

S3 バッチオペレーションはベストエフォートベースでジョブの優先度を重視します。優先順位の高いジョブは優先順位の低いジョブより優先されるのが一般的ですが、Amazon S3 はジョブの厳密な順序付けを保証しません。

Amazon S3 コンソールでジョブの優先度を更新する方法
  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. 左のナビゲーションペインで、[バッチ操作] を選択します。

  3. 管理する特定のジョブを選択します。

  4. [Actions] (アクション) を選択します。ドロップダウンリストから [Update priority] (更新優先度) を選択します。

以下の例では、AWS CLI を使用してジョブの優先度を更新します。数値が大きいほど、実行優先度が高くなります。次のコマンド例を使用するには、user input placeholders をユーザー自身の情報に置き換えます。

aws s3control update-job-priority \ --region us-west-2 \ --account-id account-id \ --priority 98 \ --job-id 00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c

次の例では、AWS SDK for Java を使用して S3 バッチ操作ジョブの優先順位を更新します。

ジョブの優先度の詳細については、「ジョブの優先度の割り当て」を参照してください。

package aws.example.s3control; import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3control.AWSS3Control; import com.amazonaws.services.s3control.AWSS3ControlClient; import com.amazonaws.services.s3control.model.UpdateJobPriorityRequest; import static com.amazonaws.regions.Regions.US_WEST_2; public class UpdateJobPriority { public static void main(String[] args) { String accountId = "Account ID"; String jobId = "00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c"; try { AWSS3Control s3ControlClient = AWSS3ControlClient.builder() .withCredentials(new ProfileCredentialsProvider()) .withRegion(US_WEST_2) .build(); s3ControlClient.updateJobPriority(new UpdateJobPriorityRequest() .withAccountId(accountId) .withJobId(jobId) .withPriority(98)); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }