Mengatur Prioritas Tugas - Amazon Simple Workflow Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengatur Prioritas Tugas

Secara default, tugas pada daftar tugas dikirimkan berdasarkan waktu kedatangan: tugas yang dijadwalkan pertama biasanya dijalankan pertama, sejauh mungkin. Dengan menetapkan opsionalPrioritas tugas, Anda dapat mengutamakan tugas-tugas tertentu: Amazon SWF akan mencoba untuk mengirimkan tugas dengan prioritas lebih tinggi pada daftar tugas terlebih dahulu sebelum tugas yang dengan prioritas lebih rendah.

catatan

Tugas yang dijadwalkan pertama biasanya dijalankan terlebih dahulu, tetapi hal ini tidak dapat dipastikan.

Anda dapat mengatur prioritas tugas untuk alur kerja dan aktivitas. Prioritas tugas alur kerja tidak memengaruhi prioritas tugas aktivitas apa pun yang dijadwalkan, juga tidak memengaruhi alur kerja anak yang dimulai oleh alur kerja tersebut. Prioritas default untuk aktivitas atau alur kerja diatur (baik oleh Anda atau oleh Amazon SWF) selama pendaftaran, dan prioritas tugas terdaftar selalu digunakan kecuali diabil alih saat menjadwalkan aktivitas atau memulai eksekusi alur kerja.

Nilai prioritas tugas dapat berkisar antara “-2147483648” hingga “2147483647”, dengan angka yang lebih tinggi menunjukkan prioritas yang lebih tinggi. Jika Anda tidak mengatur prioritas tugas untuk aktivitas atau alur kerja, prioritas akan diberikan prioritas nol ("0").

Mengatur Prioritas Tugas untuk Alur Kerja

Anda dapat mengatur prioritas tugas untuk alur kerja saat Anda mendaftarkannya atau memulainya. Prioritas tugas yang diatur saat tipe alur kerja terdaftar digunakan sebagai default untuk setiap eksekusi tipe alur kerja tersebut, kecuali jika diambil alih saat memulai eksekusi alur kerja.

Untuk mendaftarkan tipe alur kerja dengan prioritas tugas default, atur opsi defaultTaskPriority ketika menggunakan tindakan RegisterWorkflowType:

{ "domain": "867530901", "name": "expeditedOrderWorkflow", "version": "1.0", "description": "Expedited customer orders workflow", "defaultTaskStartToCloseTimeout": "600", "defaultExecutionStartToCloseTimeout": "3600", "defaultTaskList": {"name": "mainTaskList"}, "defaultTaskPriority": "10", "defaultChildPolicy": "TERMINATE" }

Anda dapat mengambil alih prioritas tugas terdaftar tipe alur kerja saat memulai eksekusi alur kerja dengan StartWorkflowExecution:

{ "childPolicy": "TERMINATE", "domain": "867530901", "executionStartToCloseTimeout": "1800", "input": "arbitrary-string-that-is-meaningful-to-the-workflow", "tagList": ["music purchase", "digital", "ricoh-the-dog"], "taskList": {"name": "specialTaskList"}, "taskPriority": "-20", "taskStartToCloseTimeout": "600", "workflowId": "20110927-T-1", "workflowType": {"name": "customerOrderWorkflow", "version": "1.0"}, }

Anda juga dapat mengambil alih prioritas tugas yang terdaftar saat memulai alur kerja anak atau saat melanjutkan alur kerja sebagai alur kerja baru, seperti saat merespons keputusan dengan RespondDecisionTaskCompleted.

Untuk menetapkan prioritas tugas alur kerja anak, sediakan nilai di startChildWorkflowExecutionDecisionAttributes:

{ "taskToken": "AAAAKgAAAAEAAAAAAAAAA...", "decisions": [ { "decisionType": "StartChildWorkflowExecution", "startChildWorkflowExecutionDecisionAttributes": { "childPolicy": "TERMINATE", "control": "digital music", "executionStartToCloseTimeout": "900", "input": "201412-Smith-011x", "taskList": {"name": "specialTaskList"}, "taskPriority": "5", "taskStartToCloseTimeout": "600", "workflowId": "verification-workflow", "workflowType": { "name": "MyChildWorkflow", "version": "1.0" } } } ] }

Saat melanjutkan alur kerja sebagai alur kerja baru, atur prioritas tugas di continueAsNewWorkflowExecutionDecisionAttributes:

{ "taskToken": "AAAAKgAAAAEAAAAAAAAAA...", "decisions": [ { "decisionType": "ContinueAsNewWorkflowExecution", "continueAsNewWorkflowExecutionDecisionAttributes": { "childPolicy": "TERMINATE", "executionStartToCloseTimeout": "1800", "input": "5634-0056-4367-0923,12/12,437", "taskList": {"name": "specialTaskList"}, "taskStartToCloseTimeout": "600", "taskPriority": "100", "workflowTypeVersion": "1.0" } } ] }

Mengatur Prioritas Tugas untuk Aktivitas

Anda dapat mengatur prioritas tugas untuk suatu aktivitas baik ketika mendaftarkan maupun ketika menjadwalkan aktivitas tersebut. Prioritas tugas yang diatur ketika mendaftarkan tipe aktivitas digunakan sebagai prioritas default ketika aktivitas dijalankan, kecuali diambil alih ketika menjadwalkan aktivitas.

Untuk mengatur prioritas tugas ketika mendaftar tipe aktivitas, atur opsi defaultTaskPriority ketika menggunakan tindakan RegisterActivityType:

{ "defaultTaskHeartbeatTimeout": "120", "defaultTaskList": {"name": "mainTaskList"}, "defaultTaskPriority": "10", "defaultTaskScheduleToCloseTimeout": "900", "defaultTaskScheduleToStartTimeout": "300", "defaultTaskStartToCloseTimeout": "600", "description": "Verify the customer credit card", "domain": "867530901", "name": "activityVerify", "version": "1.0" }

Untuk menjadwalkan tugas dengan prioritas tugas, gunakan opsi taskPriority ketika menjadwalkan aktivitas dengan tindakan RespondDecisionTaskCompleted:

{ "taskToken": "AAAAKgAAAAEAAAAAAAAAA...", "decisions": [ { "decisionType": "ScheduleActivityTask", "scheduleActivityTaskDecisionAttributes": { "activityId": "verify-account", "activityType": { "name": "activityVerify", "version": "1.0" }, "control": "digital music", "input": "abab-101", "taskList": {"name": "mainTaskList"}, "taskPriority": "15" } } ] }

Tindakan yang Mengembalikan Informasi Tugas Prioritas

Anda bisa mendapatkan informasi tentang mengatur prioritas tugas (atau mengatur prioritas tugas default) dari tindakan Amazon SWF berikut:

  • DescribeActivityType mengembalikan defaultTaskPriority dari tipe aktivitas di bagian configuration respons.

  • DescribeWorkflowExecution mengembalikan taskPriority eksekusi alur kerja di bagian executionConfiguration respons.

  • DescribeWorkflowType mengembalikan defaultTaskPriority dari tipe alur kerja di bagian configuration respons.

  • GetWorkflowExecutionHistory dan PollForDecisionTask menyediakan informasi prioritas tugas di bagian activityTaskScheduledEventAttributes, decisionTaskScheduledEventAttributes, workflowExecutionContinuedAsNewEventAttributes, dan workflowExecutionStartedEventAttributes respons.