Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengkonfigurasi perilaku antrian run
Secara default di Amazon CodeCatalyst, ketika beberapa alur kerja berjalan terjadi pada saat yang sama, CodeCatalyst mengantri, dan memprosesnya satu per satu, dalam urutan dimulai. Anda dapat mengubah perilaku default ini dengan menentukan mode run. Ada beberapa mode lari:
-
(Default) Mode lari antrian — CodeCatalyst proses berjalan satu per satu
-
Mode lari yang digantikan - CodeCatalyst proses berjalan satu per satu, dengan proses yang lebih baru menyalip yang lebih lama
-
Parallel run mode — CodeCatalyst proses berjalan secara paralel
Untuk informasi selengkapnya tentang alur kerja berjalan, lihatMenjalankan alur kerja.
Topik
Tentang mode lari antrian
Dalam mode lari antrian, run terjadi secara seri, dengan menunggu berjalan membentuk antrian.
Antrian terbentuk di titik masuk ke tindakan dan grup tindakan, sehingga Anda dapat memiliki beberapa antrian dalam alur kerja yang sama (lihat). Figure 1 Ketika lari antrian memasuki suatu tindakan, tindakan terkunci dan tidak ada jalan lain yang bisa masuk. Ketika run selesai dan keluar dari aksi, aksi menjadi tidak terkunci dan siap untuk menjalankan berikutnya.
Figure 1mengilustrasikan alur kerja yang dikonfigurasi dalam mode lari antrian. Ini menunjukkan:
-
Tujuh berjalan bekerja dengan cara mereka melalui alur kerja.
-
Dua antrian: satu di luar entri ke sumber input (Repo: main), dan satu di luar entri ke tindakan. BuildTestActionGroup
-
Dua blok terkunci: sumber input (Repo: Main) dan. BuildTestActionGroup
Berikut adalah bagaimana hal-hal akan terjadi saat alur kerja menjalankan pemrosesan akhir:
-
Ketika Run-4D444 selesai mengkloning repositori sumber, itu akan keluar dari sumber input dan bergabung dengan antrian di belakang Run-3C333. Kemudian, Run-5E555 akan masuk ke sumber input.
-
Ketika Run-1A111 selesai membangun dan menguji, itu akan keluar dari tindakan dan memasuki tindakan. BuildTestActionGroupDeployAction Kemudian, Run-2B222 akan memasuki aksi. BuildTestActionGroup
Gambar 1: Alur kerja yang dikonfigurasi dalam 'mode lari antrean'
Gunakan mode lari antrian jika:
-
Anda ingin menjaga one-to-one hubungan antara fitur dan proses — fitur ini dapat dikelompokkan saat menggunakan mode yang diganti. Misalnya, saat Anda menggabungkan fitur 1 di komit 1, jalankan 1 dimulai, dan saat Anda menggabungkan fitur 2 di komit 2, jalankan 2 dimulai, dan seterusnya. Jika Anda menggunakan mode yang digantikan alih-alih mode antrian, fitur Anda (dan komit) akan dikelompokkan bersama dalam proses yang menggantikan yang lain.
-
Anda ingin menghindari kondisi balapan dan masalah tak terduga yang mungkin terjadi saat menggunakan mode paralel. Misalnya, jika dua pengembang perangkat lunak, Wang dan Saanvi, memulai alur kerja berjalan pada waktu yang kira-kira bersamaan untuk menyebarkan ke ECS cluster Amazon, proses Wang mungkin memulai tes integrasi pada cluster sementara jalankan Saanvi menyebarkan kode aplikasi baru ke cluster, menyebabkan tes Wang gagal atau menguji kode yang salah. Sebagai contoh lain, Anda mungkin memiliki target yang tidak memiliki mekanisme penguncian, dalam hal ini kedua proses dapat menimpa perubahan satu sama lain dengan cara yang tidak terduga.
-
Anda ingin membatasi beban pada sumber daya komputasi yang CodeCatalyst digunakan untuk memproses proses Anda. Misalnya, jika Anda memiliki tiga tindakan dalam alur kerja Anda, Anda dapat memiliki maksimum tiga proses yang terjadi pada saat yang sama. Memaksakan batasan pada jumlah run yang dapat terjadi sekaligus membuat throughput run lebih dapat diprediksi.
-
Anda ingin membatasi jumlah permintaan yang dibuat ke layanan pihak ketiga berdasarkan alur kerja. Misalnya, alur kerja Anda mungkin memiliki tindakan build yang menyertakan instruksi untuk menarik gambar dari Docker Hub. Docker Hub membatasi jumlah permintaan tarik
yang dapat Anda buat hingga jumlah tertentu per jam per akun, dan Anda akan dikunci jika melampaui batas. Menggunakan mode lari antrian untuk memperlambat throughput run Anda akan memiliki efek menghasilkan lebih sedikit permintaan ke Docker Hub per jam, sehingga membatasi potensi penguncian dan mengakibatkan kegagalan build dan run.
Ukuran antrian maksimal: 50
Catatan tentang ukuran antrian maksimum:
-
Ukuran antrian maksimum mengacu pada jumlah maksimum proses yang diizinkan di semua antrian dalam alur kerja.
-
Jika antrian menjadi lebih panjang dari 50 run, maka CodeCatalyst turunkan lari ke-51 dan selanjutnya.
Perilaku kegagalan:
Jika proses menjadi tidak responsif saat sedang diproses oleh suatu tindakan, maka proses di belakangnya ditahan dalam antrian hingga waktu tindakan habis. Waktu tindakan habis setelah satu jam.
Jika run gagal di dalam suatu tindakan, maka lari antrian pertama di belakangnya diizinkan untuk melanjutkan.
Tentang mode lari yang digantikan
Mode lari yang diganti sama dengan mode lari antrian kecuali bahwa:
-
Jika proses antrian mengejar lari lain dalam antrian, proses selanjutnya menggantikan (mengambil alih dari) proses sebelumnya, dan proses sebelumnya dibatalkan dan ditandai sebagai 'digantikan'.
-
Sebagai hasil dari perilaku yang dijelaskan dalam bullet pertama, antrian hanya dapat menyertakan satu run ketika mode run digantikan digunakan.
Menggunakan alur kerja Figure 1 sebagai panduan, menerapkan mode run yang digantikan ke alur kerja ini akan menghasilkan hal berikut:
-
Run-7G777 akan menggantikan dua run lainnya dalam antreannya, dan akan menjadi satu-satunya run yang tersisa di Antrian #1. Run-6F666 dan Run-5E555 akan dibatalkan.
-
Run-3C333 akan menggantikan Run-2B222 dan menjadi satu-satunya run yang tersisa di Antrian #2. Run-2b222 akan dibatalkan.
Gunakan mode lari yang digantikan jika Anda ingin:
-
throughput yang lebih baik daripada dengan mode antrian
-
bahkan lebih sedikit permintaan ke layanan pihak ketiga dibandingkan dengan mode antrian; ini menguntungkan jika layanan pihak ketiga memiliki batas tarif, seperti Docker Hub
Tentang mode parallel run
Dalam mode parallel run, run tidak tergantung satu sama lain dan jangan menunggu proses lain selesai sebelum memulai. Tidak ada antrian, dan run throughput hanya dibatasi oleh seberapa cepat tindakan di dalam alur kerja selesai.
Gunakan mode parallel run di lingkungan pengembangan di mana setiap pengguna memiliki cabang fitur mereka sendiri dan menyebarkan ke target yang tidak dibagikan oleh pengguna lain.
penting
Jika Anda memiliki target bersama yang dapat diterapkan oleh beberapa pengguna, seperti fungsi Lambda di lingkungan produksi, jangan gunakan mode paralel, karena kondisi balapan dapat terjadi. Kondisi balapan terjadi ketika alur kerja paralel berjalan mencoba mengubah sumber daya bersama pada saat yang sama, yang mengarah ke hasil yang tidak dapat diprediksi.
Jumlah maksimum parallel run: 1000 per CodeCatalyst spasi
Mengkonfigurasi mode lari
Anda dapat mengatur mode lari ke antrian, digantikan, atau paralel. Defaultnya antri.
Saat Anda mengubah mode lari dari antrian atau digantikan menjadi paralel CodeCatalyst , membatalkan proses yang diantrian, dan memungkinkan proses yang saat ini sedang diproses oleh tindakan selesai sebelum membatalkannya.
Ketika Anda mengubah mode run dari parallel ke antrian atau digantikan, memungkinkan CodeCatalyst semua berjalan paralel yang berjalan saat ini selesai. Setiap proses yang Anda mulai setelah mengubah mode run menjadi antrian atau digantikan menggunakan mode baru.