Menjalankan Tugas

Anda dapat menjalankan alur kerja berumur pendek dengan menjalankannya sebagai Tasks di Kf. Tugas dijalankan di bagian Aplikasi, artinya setiap Tugas harus memiliki Aplikasi terkait. Setiap eksekusi Tugas menggunakan artefak build dari Aplikasi induk. Karena Tasks berumur pendek, Aplikasi tidak di-deploy sebagai aplikasi yang berjalan lama, dan tidak ada rute yang harus dibuat untuk Aplikasi atau Tugas tersebut.

Mengirim Aplikasi untuk menjalankan Tasks

  1. Clone repo repo test-app:

    git clone https://github.com/cloudfoundry-samples/test-app test-app
    cd test-app
  2. Dorong Aplikasi.

    Kirim Aplikasi dengan perintah kf push APP_NAME --task. Flag --task menunjukkan bahwa Aplikasi dimaksudkan untuk digunakan untuk menjalankan Tasks, sehingga tidak ada rute yang dibuat di Aplikasi tersebut, dan aplikasi tidak di-deploy sebagai aplikasi yang berjalan lama:

    kf push test-app --task
  3. Konfirmasi bahwa tidak ada instance atau rute Aplikasi yang dibuat dengan mencantumkan Aplikasi:

    kf apps

    Perhatikan bahwa Aplikasi tidak dimulai dan tidak memiliki URL:

    Listing Apps in Space: test-space
    Name                     Instances  Memory  Disk  CPU   URLs
    test-app                 stopped    1Gi     1Gi   100m  <nil>
    

Menjalankan Tugas di Aplikasi

Saat menjalankan Task di Aplikasi, Anda dapat secara opsional menentukan perintah awal menggunakan flag --command. Jika tidak ada perintah awal yang ditentukan, aplikasi akan menggunakan perintah mulai yang ditentukan di Aplikasi. Jika tidak memiliki perintah awal yang ditentukan, Aplikasi akan mencari konfigurasi CMD gambar container. Perintah awal harus ada agar dapat menjalankan Tugas.

kf run-task test-app --command "printenv"

Anda akan melihat sesuatu yang mirip dengan ini, yang mengonfirmasi bahwa Tugas telah dikirim:

Task test-app-gd8dv is submitted successfully for execution.

Nama Tugas dibuat secara otomatis, diawali dengan nama Aplikasi, dan diakhiri dengan string arbitrer. Nama Tugas adalah ID unik untuk Tugas dalam cluster yang sama.

Menentukan batas resource Task

Batas resource (seperti core CPU/Batas memori/Kuota disk) dapat ditentukan di Aplikasi (selama kf push) atau selama perintah kf run-task. Batas yang ditentukan dalam perintah kf run-task lebih diutamakan daripada batas yang ditentukan di Aplikasi.

Untuk menentukan batas resource dalam Aplikasi, Anda dapat menggunakan tanda --cpu-cores, --memory-limit, dan --disk-quota dalam perintah kf push:

kf push test-app --command "printenv" --cpu-cores=0.5 --memory-limit=2G --disk-quota=5G --task

Untuk mengganti batas ini di Aplikasi, Anda dapat menggunakan tanda --cpu-cores, --memory-limit, dan --disk-quota dalam perintah kf run-task:

kf run-task test-app --command "printenv" --cpu-cores=0.5 --memory-limit=2G --disk-quota=5G

Menentukan nama tampilan kustom untuk Tugas

Secara opsional, Anda dapat menggunakan tanda --name guna menentukan nama tampilan kustom untuk Tugas guna mempermudah identifikasi/pengelompokan:

$ kf run-task test-app --command "printenv" --name foo
Task test-app-6swct is submitted successfully for execution.

$ kf tasks test-app
Listing Tasks in Space: test space
Name              ID  DisplayName        Age    Duration  Succeeded  Reason
test-app-6swct    3   foo                1m     21s       True       <nil>

Mengelola Tugas

Lihat semua Tugas Aplikasi dengan perintah kf tasks APP_NAME:

$ kf tasks test-app
Listing Tasks in Space: test space
Name              ID  DisplayName        Age    Duration  Succeeded  Reason
test-app-gd8dv    1   test-app-gd8dv     1m     21s       True       <nil>

Membatalkan Tugas

Batalkan Tugas aktif menggunakan perintah kf terminate-task:

  • Membatalkan Tugas berdasarkan nama Tugas:

    $ kf terminate-task test-app-6w6mz
    Task "test-app-6w6mz" is successfully submitted for termination
    
  • Atau batalkan Tugas menurut APP_NAME + ID Tugas:

    $ kf terminate-task test-app 2
    Task "test-app-6w6mz" is successfully submitted for termination
    

Tugas yang dibatalkan memiliki status PipelineRunCancelled.

$ kf tasks test-app
Listing Tasks in Space: test space
Name              ID  DisplayName        Age    Duration  Succeeded  Reason
test-app-gd8dv    1   test-app-gd8dv     1m     21s       True       <nil>
test-app-6w6mz    2   test-app-6w6mz     38s    11s       False      PipelineRunCancelled

Lihat Log tugas

Lihat log Tugas menggunakan perintah kf logs APP_NAME --task:

$ kf logs test-app --task