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").
Topik
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
, danworkflowExecutionStartedEventAttributes
respons.