Secara default, setiap tugas berjalan selama maksimum 10 menit: Anda dapat mengubahnya menjadi waktu yang lebih singkat atau waktu yang lebih lama hingga 24 jam.
Anda akan mengatur task timeout seperti yang dijelaskan di halaman ini. Tidak ada timeout eksplisit pada eksekusi job: jika semua task selesai, maka eksekusi job juga akan selesai.
Dalam hal retry, setelan timeout diterapkan ke setiap percobaan memulai sebuah task. Jika percobaan memulai task tidak kunjung selesai dalam kurun waktu yang telah ditentukan, maka task akan dihentikan.
Anda dapat menentukan durasi menggunakan simbol satuan waktu; sebagai contoh, 10m5s
terbaca sepuluh menit
lima detik. Jika Anda tidak menentukan satuan, maka detik (s) akan dianggap sebagai satuan default.
Sebagai contoh, 10
terbaca 10 detik.
Mengamati dan menangani event pemeliharaan
Tugas mungkin akan mengalami peristiwa pemeliharaan secara berkala. Selama pemeliharaan, semua task yang sedang berlangsung akan dimigrasikan ke komputer lain. Dalam proses migrasi ini seluruh status task akan tetap terjaga. Namun, dalam proses tersebut akan ada jeda singkat saat task sedang dimigrasikan.
Peristiwa pemeliharaan bersifat transparan; Anda tidak perlu membuat perubahan apa pun pada container untuk menangani peristiwa pemeliharaan. Ingat, setiap kali task diimigrasi, saat mulai dan saat selesai, Cloud Run akan mencetak pesan log.
Namun, jika ingin memantau atau menangani event pemeliharaan dengan cara tertentu,
Anda dapat menangkap sinyal SIGTSTP
, yang akan dikirim 10 detik sebelum task
dimigrasikan. Setelah proses migrasi, task akan menerima sinyal SIGCONT
segera
setelah task tersebut dimulai ulang.
Berikut adalah contoh fungsi dalam bahasa GO yang akan menangkap sinyal tersebut dan mencetak entri log:
func testSignals() { sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGTSTP, syscall.SIGCONT) go func() { for { sig := <-sigs log.Printf("Got Signal: %v", sig) } }() }
Menyetel task timeout
Untuk menentukan task timeout pada sebuah job Cloud Run:
Konsol
Pada konsol Google Cloud, buka halaman tugas Cloud Run:
Jika Anda sedang mengonfigurasi tugas baru, klik tabTugas dan isi halaman setelan tugas awal seperti yang diinginkan. Jika Anda sedang mengonfigurasi tugas yang sudah ada, klik tugas tersebut, lalu klikEdit.
Klik Container, variabel dan secret, koneksi, keamanan untuk meluaskan halaman properti tugas.
Klik tab General.
- Tentukan durasi maksimum untuk task yang ada di
job tersebut, dengan menentukan jumlah waktu dan satuannya: contohnya,
10m5s
terbaca sepuluh menit lima detik.
- Tentukan durasi maksimum untuk task yang ada di
job tersebut, dengan menentukan jumlah waktu dan satuannya: contohnya,
Klik Create atau Update.
Command line
Untuk job yang Anda buat:
gcloud run jobs create JOB_NAME --image IMAGE_URL --task-timeout TIMEOUT
Ganti
- JOB_NAME dengan nama tugas Anda.
- IMAGE_URL dengan referensi ke container image,
contohnya,
us-docker.pkg.dev/cloudrun/container/job:latest
. - TIMEOUT dengan durasi maksimum untuk task,
tentukan jumlah waktu dan satuannya: contohnya,
10m5s
terbaca sepuluh menit dan lima detik.
Untuk job yang akan Anda perbarui:
gcloud run jobs update JOB_NAME --task-timeout TIMEOUT
YAML
Download dan lihat konfigurasi job yang ada menggunakan
perintah gcloud run jobs describe --format export
, yang akan
memberikan hasil yang dibersihkan dalam format YAML. Kemudian ubah kolom yang dijelaskan di bawah ini dan
upload YAML yang telah dimodifikasi menggunakan perintah gcloud run jobs replace
.
Pastikan Anda hanya mengubah kolom seperti yang didokumentasikan.
Untuk melihat dan mendownload konfigurasi:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Perbarui atribut
timeoutSeconds:
:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE timeoutSeconds: TIMEOUT
Ganti TIMEOUT dengan durasi maksimum untuk task, dan tenentukan jumlah waktu dan satuannya: contohnya,
10m5s
terbaca sepuluh menit dan lima detik.Anda juga dapat menentukan konfigurasi lainnya, seperti variabel lingkungan atau batas memori.
Perbarui konfigurasi job yang ada:
gcloud run jobs replace job.yaml
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Agar dapat menentukan task timeout untuk sebuah job Cloud Run, gunakan resource google_cloud_run_v2_job
dan terapkan snippet berikut ke file main.tf
Anda:
Menampilkan setelan task timeout
Untuk melihat setelan task timeout saat ini dari job Cloud Run Anda:
Konsol
Pada konsol Google Cloud, buka halaman tugas Cloud Run.
Klik tugas yang Anda minati untuk membuka halaman Detail pekerjaan.
Klik tab Configuration.
Temukan setelan task timeout di detail konfigurasi.
Command line
Gunakan perintah berikut:
gcloud run jobs describe JOB_NAME
Temukan setelan task timeout dalam konfigurasi yang ditampilkan.