Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Amazon SWF Workflow History
Kemajuan setiap eksekusi alur kerja dicatat dalam riwayat alur kerja, yang disimpan oleh Amazon SWF. Riwayat alur kerja merupakan catatan terperinci, lengkap, dan konsisten dari setiap kejadian yang terjadi sejak eksekusi alur kerja dimulai. Kejadian menunjukkan perubahan rahasia dalam status eksekusi alur kerja Anda, seperti aktivitas baru yang dijadwalkan atau aktivitas berjalan sedang diselesaikan. Riwayat alur kerja berisi setiap kejadian yang menyebabkan status eksekusi eksekusi alur kerja berubah, seperti aktivitas terjadwal dan selesai, batas waktu tugas, dan sinyal.
Operasi yang tidak mengubah status eksekusi alur kerja biasanya tidak muncul dalam riwayat alur kerja. Misalnya, riwayat alur kerja tidak menampilkan upaya pemilihan atau penggunaan operasi visibilitas.
Riwayat alur kerja memiliki beberapa manfaat utama:
-
Memungkinkan aplikasi menjadi stateless, karena semua informasi tentang eksekusi alur kerja disimpan dalam riwayat alur kerjanya.
-
Untuk setiap eksekusi alur kerja, riwayat menyediakan catatan aktivitas yang dijadwalkan, statusnya saat ini, dan hasilnya. Eksekusi alur kerja menggunakan informasi ini untuk menentukan langkah selanjutnya.
-
Riwayat menyediakan jejak audit terperinci yang dapat digunakan untuk memantau eksekusi alur kerja yang berjalan dan memverifikasi eksekusi alur kerja yang telah selesai.
Berikut ini adalah tampilan konseptual dari riwayat alur kerja perdagangan elektronik:
Invoice0001 Start Workflow Execution Schedule Verify Order Start Verify Order Activity Complete Verify Order Activity Schedule Charge Credit Card Start Charge Credit Card Activity Complete Charge Credit Card Activity Schedule Ship Order Start Ship Order Activity
Dalam contoh sebelumnya, pesanan sedang menunggu untuk dikirim. Pada contoh berikut, pesanan selesai. Karena riwayat alur kerja bersifat kumulatif, kejadian yang lebih baru ditambahkan:
Invoice0001 Start Workflow Execution Schedule Verify Order Start Verify Order Activity Complete Verify Order Activity Schedule Charge Credit Card Start Charge Credit Card Activity Complete Charge Credit Card Activity Schedule Ship Order Start Ship Order Activity
Complete Ship Order Activity Schedule Record Order Completion Start Record Order Completion Activity Complete Record Order Completion Activity Close Workflow
Secara terprogram, kejadian dalam riwayat eksekusi alur kerja direpresentasikan sebagai objek JavaScript Object Notation (JSON). Riwayatnya merupakan array JSON dari objek-objek ini. Setiap kejadian memiliki:
-
Jenis, seperti WorkflowExecutionStarted atau ActivityTaskCompleted
-
Sebuah tanda waktu dalam format waktu Unix
-
ID unik yang mengidentifikasi kejadian
Selain itu, setiap jenis kejadian memiliki seperangkat atribut deskriptif yang berbeda yang sesuai dengan jenis tersebut. Misalnya, kejadian ActivityTaskCompleted
memiliki atribut yang berisi ID untuk kejadian yang sesuai dengan waktu yang tugas aktivitas dijadwalkan dan ketika itu dimulainya, serta atribut yang menyimpan data hasil.
Anda dapat memperoleh salinan status riwayat eksekusi alur kerja saat ini dengan menggunakan tindakan GetWorkflowExecutionHistory. Selain itu, sebagai bagian dari interaksi antara Amazon SWF dan pengambil keputusan untuk alur kerja Anda, pengambil keputusan secara berkala menerima salinan riwayat.
Di bawah ini adalah bagian dari contoh riwayat eksekusi alur kerja dalam format JSON.
[ { "eventId": 11, "eventTimestamp": 1326671603.102, "eventType": "WorkflowExecutionTimedOut", "workflowExecutionTimedOutEventAttributes": { "childPolicy": "TERMINATE", "timeoutType": "START_TO_CLOSE" } }, { "decisionTaskScheduledEventAttributes": { "startToCloseTimeout": "600", "taskList": { "name": "specialTaskList" } }, "eventId": 10, "eventTimestamp": 1326670566.124, "eventType": "DecisionTaskScheduled" }, { "activityTaskTimedOutEventAttributes": { "details": "Waiting for confirmation", "scheduledEventId": 8, "startedEventId": 0, "timeoutType": "SCHEDULE_TO_START" }, "eventId": 9, "eventTimestamp": 1326670566.124, "eventType": "ActivityTaskTimedOut" }, { "activityTaskScheduledEventAttributes": { "activityId": "verification-27", "activityType": { "name": "activityVerify", "version": "1.0" }, "control": "digital music", "decisionTaskCompletedEventId": 7, "heartbeatTimeout": "120", "input": "5634-0056-4367-0923,12/12,437", "scheduleToCloseTimeout": "900", "scheduleToStartTimeout": "300", "startToCloseTimeout": "600", "taskList": { "name": "specialTaskList" } }, "eventId": 8, "eventTimestamp": 1326670266.115, "eventType": "ActivityTaskScheduled" }, { "decisionTaskCompletedEventAttributes": { "executionContext": "Black Friday", "scheduledEventId": 5, "startedEventId": 6 }, "eventId": 7, "eventTimestamp": 1326670266.103, "eventType": "DecisionTaskCompleted" }, { "decisionTaskStartedEventAttributes": { "identity": "Decider01", "scheduledEventId": 5 }, "eventId": 6, "eventTimestamp": 1326670161.497, "eventType": "DecisionTaskStarted" }, { "decisionTaskScheduledEventAttributes": { "startToCloseTimeout": "600", "taskList": { "name": "specialTaskList" } }, "eventId": 5, "eventTimestamp": 1326668752.66, "eventType": "DecisionTaskScheduled" }, { "decisionTaskTimedOutEventAttributes": { "scheduledEventId": 2, "startedEventId": 3, "timeoutType": "START_TO_CLOSE" }, "eventId": 4, "eventTimestamp": 1326668752.66, "eventType": "DecisionTaskTimedOut" }, { "decisionTaskStartedEventAttributes": { "identity": "Decider01", "scheduledEventId": 2 }, "eventId": 3, "eventTimestamp": 1326668152.648, "eventType": "DecisionTaskStarted" }, { "decisionTaskScheduledEventAttributes": { "startToCloseTimeout": "600", "taskList": { "name": "specialTaskList" } }, "eventId": 2, "eventTimestamp": 1326668003.094, "eventType": "DecisionTaskScheduled" } ]
Untuk daftar terperinci dari berbagai jenis kejadian yang dapat muncul dalam riwayat eksekusi alur kerja, lihat jenis data HistoryEvent di Referensi API Amazon Simple Workflow Service.
Amazon SWF menyimpan riwayat lengkap dari semua eksekusi alur kerja selama beberapa hari yang dapat dikonfigurasi setelah eksekusi ditutup. Periode ini, yang dikenal sebagai periode penyimpanan riwayat alur kerja, ditentukan saat Anda mendaftarkan Domain untuk alur kerja Anda. Domain dibahas lebih terperinci nanti di bagian ini.