Anda dapat menjalankan alur kerja berumur pendek dengan menjalankannya sebagai Tugas. Menjalankan Tugas menjelaskan cara menjalankan Tugas di bagian Aplikasi.
Anda juga dapat menjadwalkan Tugas untuk berjalan pada interval berulang yang ditentukan menggunakan format unix-cron. Dengan Tugas terjadwal, Anda harus terlebih dahulu mendorong Aplikasi yang menjalankan Tugas seperti yang Anda lakukan dengan Tugas yang tidak terjadwal, lalu membuat Tugas untuk menjadwalkan Tugas.
Anda dapat menentukan jadwal agar Tugas berjalan beberapa kali sehari, atau pada hari dan bulan tertentu.
Mendorong Aplikasi untuk menjalankan Tugas terjadwal
Clone repo aplikasi pengujian.
git clone https://github.com/cloudfoundry-samples/test-app test-app
cd test-app
Kirim Aplikasi.
Kirim Aplikasi dengan perintah
kf push APP_NAME --task
. Flag--task
menunjukkan bahwa Aplikasi dimaksudkan untuk digunakan untuk menjalankan Tugas, sehingga tidak ada rute yang akan dibuat di Aplikasi dan tidak akan di-deploy sebagai aplikasi yang berjalan lama.kf push test-app --task
Pastikan 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 Tugas
Untuk menjalankan Tugas sesuai jadwal, Anda harus membuat Tugas yang menjelaskan Tugas terlebih dahulu.
kf create-job test-app test-job "printenv"
Tugas mulai ditangguhkan, atau tidak dijadwalkan, dan tidak membuat Tugas hingga
dijalankan secara manual oleh kf run-job
atau dijadwalkan oleh kf schedule-task
.
Menjalankan secara manual
Tugas dapat dijalankan secara ad hoc mirip dengan menjalankan Tugas oleh kf run-task
. Opsi ini
dapat berguna untuk menguji Tugas sebelum menjadwalkan atau menjalankannya sesuai kebutuhan selain
menjadwalkan.
kf run-job test-job
Perintah ini langsung menjalankan Tugas yang ditentukan oleh Tugas satu kali.
Menjadwalkan Tugas
Untuk menjadwalkan Tugas agar dieksekusi, Anda harus memberikan jadwal unix-cron dalam perintah kf schedule-job
.
kf schedule-job test-job "* * * * *"
Perintah ini memicu Tugas untuk membuat Tugas secara otomatis sesuai jadwal yang ditentukan. Dalam contoh ini, Tugas berjalan setiap menit.
Anda dapat memperbarui jadwal Tugas dengan menjalankan kf schedule-task
dengan jadwal baru.
Tugas di Kf hanya dapat memiliki satu jadwal cron. Hal ini berbeda
dengan PCF Scheduler yang memungkinkan beberapa jadwal untuk satu Tugas.
Jika memerlukan beberapa jadwal cron, Anda dapat melakukannya dengan beberapa Tugas.
Mengelola Tugas dan Jadwal
Lihat semua Tugas, baik terjadwal maupun 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 secara aktif dijadwalkan 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 Tugas
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 tidak dihapus dan dapat dijadwalkan lagi oleh kf schedule-job
untuk melanjutkan eksekusi.
Menghapus Tugas
Seluruh Tugas dapat dihapus dengan perintah kf delete-job
.
kf delete-job test-job
Perintah ini menghapus Tugas dan semua Tugas yang dibuat oleh Tugas, baik eksekusi terjadwal maupun manual. Jika ada Tugas yang masih berjalan, perintah ini akan menghapusnya secara paksa.
Jika Anda ingin memastikan bahwa Tugas yang sedang berjalan tidak terganggu, hapus terlebih dahulu
jadwal Tugas dengan kf delete-job-schedule
, tunggu hingga semua Tugas selesai,
lalu hapus tugas dengan memanggil kf delete-job
.