Amazon SWF Workflow History - Amazon Simple Workflow Service

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:

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.