Anda dapat menjalankan alur kerja berumur pendek dengan menjalankannya sebagai Tasks. Running Tasks menjelaskan cara menjalankan Tasks di bagian Apps.
Anda juga dapat menjadwalkan Tasks untuk dijalankan pada interval berulang yang ditentukan menggunakan format unix-cron. Dengan Tugas terjadwal, pertama-tama Anda mengirim Aplikasi yang menjalankan Tugas seperti yang Anda lakukan dengan Tugas yang tidak terjadwal, lalu membuat Tugas untuk menjadwalkan Tugas tersebut.
Anda dapat menentukan jadwal sehingga Tugas Anda berjalan beberapa kali sehari, atau pada hari dan bulan tertentu.
Mengirim Aplikasi untuk menjalankan Tasks terjadwal
Buat clone untuk repo aplikasi pengujian.
git clone https://github.com/cloudfoundry-samples/test-app test-app
cd test-app
Dorong Aplikasi.
Kirim Aplikasi dengan perintah
kf push APP_NAME --task
. Tanda--task
menunjukkan bahwa Aplikasi dimaksudkan untuk digunakan untuk menjalankan Tasks, sehingga tidak ada rute yang akan dibuat pada Aplikasi dan tidak akan di-deploy sebagai aplikasi yang berjalan lama.kf push test-app --task
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>
Membuat Pekerjaan
Untuk menjalankan Tugas sesuai jadwal, Anda harus terlebih dahulu membuat Tugas yang menjelaskan Tugas tersebut.
kf create-job test-app test-job "printenv"
Tugas dimulai ditangguhkan, atau tidak dijadwalkan, dan tidak membuat Tugas sampai
dijalankan secara manual oleh kf run-job
atau dijadwalkan oleh kf schedule-task
.
Berjalan secara manual
Tugas dapat dijalankan secara ad hoc seperti menjalankan Tasks oleh kf run-task
. Opsi ini
dapat berguna untuk menguji Tugas sebelum menjadwalkan atau berjalan sesuai kebutuhan selain
jadwal.
kf run-job test-job
Perintah ini menjalankan Tugas yang ditentukan oleh Tugas satu kali dengan segera.
Menjadwalkan Pekerjaan
Guna menjadwalkan Tugas untuk dieksekusi, Anda harus memberikan jadwal unix-cron dalam
perintah kf schedule-job
.
kf schedule-job test-job "* * * * *"
Perintah ini memicu Tugas untuk otomatis membuat Tugas pada jadwal yang ditentukan. Dalam contoh ini, Tugas berjalan setiap menit.
Anda dapat memperbarui jadwal Tugas dengan menjalankan kf schedule-task
dengan jadwal baru.
Tugas dalam Kf hanya dapat memiliki satu jadwal cron. Ini berbeda
dengan Penjadwal PCF yang memungkinkan beberapa jadwal untuk satu Tugas.
Jika Anda memerlukan beberapa jadwal cron, Anda dapat melakukannya dengan beberapa Tugas.
Mengelola Pekerjaan dan Jadwal
Lihat semua Tugas, baik yang dijadwalkan maupun yang tidak terjadwal, di Ruang saat ini menggunakan
perintah kf jobs
.
$ kf jobs
Listing Jobs in Space: test space
Name Schedule Suspend LastSchedule Age Ready Reason
test-job * * * * * <nil> 16s 2m True <nil>
unscheduled-job 0 0 30 2 * true 16s 2m True <nil>
Selain itu, Anda hanya dapat melihat Tugas yang dijadwalkan secara aktif dengan
perintah kf job-schedules
.
$ kf job-schedules
Listing job schedules in Space: test space
Name Schedule Suspend LastSchedule Age Ready Reason
test-job * * * * * <nil> 16s 2m True <nil>
Perhatikan bahwa unscheduled-job
tidak tercantum dalam output kf job-schedules
.
Membatalkan jadwal Pekerjaan
Anda dapat menghentikan Tugas terjadwal dengan perintah kf delete-job-schedule
.
kf delete-job-schedule test-job
Perintah ini menangguhkan Tugas dan menghentikannya membuat Tugas pada jadwal sebelumnya.
Tugas ini tidak dihapus dan dapat dijadwalkan lagi oleh kf schedule-job
untuk melanjutkan eksekusi.
Menghapus Pekerjaan
Seluruh Tugas dapat dihapus dengan perintah kf delete-job
.
kf delete-job test-job
Perintah ini akan menghapus Tugas dan semua Tugas yang dibuat oleh Tugas tersebut, baik eksekusi terjadwal maupun manual. Jika ada Tasks yang masih berjalan, perintah ini akan menghapusnya secara paksa.
Jika Anda ingin memastikan bahwa tugas yang berjalan tidak terganggu, hapus
jadwal Tugas dengan kf delete-job-schedule
terlebih dahulu, tunggu semua Tasks selesai,
lalu hapus tugas dengan memanggil kf delete-job
.