Menjalankan proses di latar belakang dengan WebJobs

Artikel ini menjelaskan cara menyebarkan WebJobs dengan menggunakan portal Microsoft Azure untuk mengunggah executable atau skrip. WebJobs adalah fitur Azure App Service yang memungkinkan Anda menjalankan program atau skrip dalam instans yang sama dengan aplikasi web. Semua paket layanan aplikasi mendukung WebJobs. Tidak ada biaya tambahan untuk menggunakan WebJobs.

Gambaran Umum

WebJobs adalah fitur Azure App Service yang memungkinkan Anda menjalankan program atau skrip dalam instans yang sama dengan aplikasi web. Semua paket layanan aplikasi mendukung WebJobs. Tidak ada biaya tambahan untuk menggunakan WebJobs.

Jika Anda menggunakan Visual Studio alih-alih Azure App Service untuk mengembangkan dan menyebarkan WebJobs, lihat Mengembangkan dan menyebarkan WebJobs menggunakan Visual Studio.

Azure Functions menyediakan cara lain untuk menjalankan program dan skrip. Untuk perbandingan antara WebJobs dan Functions, lihat Memilih layanan integrasi dan otomatisasi yang tepat di Azure.

Jenis WebJob

Jenis file yang didukung untuk skrip atau program

Penting

WebJobs tidak didukung dalam kontainer Linux kustom berdasarkan Alpine Linux, termasuk aplikasi Linux menggunakan tumpukan runtime Java 8 dan Java 11. Dimulai dengan aplikasi Linux Java 17, Azure App Service menggunakan gambar berbasis non-Alpine, yang kompatibel dengan WebJobs.

Jenis file berikut ini didukung:

  • Menggunakan cmd Windows: .cmd, .bat, .exe
  • Menggunakan PowerShell: .ps1
  • Menggunakan Bash: .sh
  • Menggunakan Node.js: .js
  • Menggunakan Java: .jar

Runtime yang diperlukan untuk menjalankan jenis file ini sudah diinstal pada instans aplikasi web.

WebJobs berkelanjutan vs. yang dipicu

Tabel berikut ini menjelaskan perbedaan antara WebJobs berkelanjutan dan terpicu :

Berkelanjutan Tersulut
Langsung dimulai ketika WebJob dibuat. Untuk menjaga pekerjaan agar tidak berakhir, program atau skrip biasanya melakukan pekerjaannya di dalam perulangan tanpa akhir. Jika pekerjaan berakhir, Anda dapat memulainya ulang. Biasanya digunakan dengan WebJobs SDK. Dimulai hanya jika dipicu secara manual atau sesuai jadwal.
Berjalan pada semua instans tempat aplikasi web dijalankan. Anda dapat secara opsional membatasi WebJob ke satu instans. Berjalan pada satu instans yang dipilih Azure untuk penyeimbangan beban.
Mendukung penelusuran kesalahan jarak jauh. Tidak mendukung debugging jarak jauh.
Kode disebarkan di bawah \site\wwwroot\app_data\Jobs\Continuous. Kode disebarkan di bawah \site\wwwroot\app_data\Jobs\Triggered.

Catatan

Sebuah aplikasi web dapat kedaluwarsa setelah 20 menit tidak aktif, dan hanya permintaan ke aplikasi web yang sebenarnya yang dapat mereset timer. Menampilkan konfigurasi aplikasi di portal Microsoft Azure atau membuat permintaan ke situs alat tingkat lanjut tidak mengatur ulang timer. Jika Anda mengatur aplikasi web yang menghosting pekerjaan Anda untuk berjalan terus menerus, berjalan sesuai jadwal, atau menggunakan pemicu berbasis peristiwa, aktifkan pengaturan Always on di panel Konfigurasi Azure aplikasi web Anda. Pengaturan Always on membantu memastikan bahwa jenis WebJobs ini berjalan dengan andal. Fitur ini hanya tersedia di tingkat harga Dasar, Standar, dan Premium.

Membuat sebuah WebJob berkelanjutan

Penting

Saat Anda memiliki kontrol sumber yang dikonfigurasi dengan aplikasi Anda, Webjobs harus disebarkan sebagai bagian dari integrasi kontrol sumber. Setelah kontrol sumber dikonfigurasi dengan aplikasi Anda, sebuah WebJob tidak dapat ditambahkan dari portal Microsoft Azure.

  1. Di portal Azure, buka halaman App Service aplikasi web App Service, aplikasi API, atau aplikasi seluler Anda.

  2. Di bawah Pengaturan di panel kiri, pilih WebJobs, lalu pilih Tambahkan.

    Cuplikan layar yang memperlihatkan cara menambahkan WebJob di aplikasi App Service di portal.

  3. Isi pengaturan Tambahkan WebJob seperti yang ditentukan dalam tabel, lalu pilih Buat Webjob.

    Cuplikan layar yang memperlihatkan cara mengonfigurasi WebJob berkelanjutan multi-instans untuk aplikasi App Service.

    Pengaturan Contoh nilai Deskripsi
    Nama Pekerjaan Web Berkelanjutan Saya Nama WebJob yang unik. Harus dimulai dengan huruf atau angka dan tidak boleh berisi karakter khusus selain "-" dan "_".
    Unggahan File ConsoleApp.zip File .zip yang berisi file executable atau skrip Anda dan file pendukung apa pun yang diperlukan untuk menjalankan program atau skrip. Jenis file skrip atau eksekusi yang didukung tercantum di bagian Jenis file yang didukung.
    Jenis Berkelanjutan Jenis WebJobs dijelaskan sebelumnya di artikel ini.
    Timbangan Beberapa Instansi Hanya tersedia untuk WebJobs Berkelanjutan. Menentukan apakah program atau skrip berjalan pada semua instans atau satu instans. Opsi untuk digunakan di beberapa instans tidak berlaku untuk tingkat harga Gratis atau Berbagi.
  4. WebJob yang baru muncul di halaman WebJobs. Jika Anda melihat pesan yang mengatakan bahwa WebJob ditambahkan, tetapi Anda tidak dapat menemukannya, pilih Refresh.

  5. Untuk menghentikan atau memulai ulang WebJob berkelanjutan, klik kanan WebJob dalam daftar dan pilih tombol Hentikan atau Jalankan , lalu konfirmasi pilihan Anda.

    Cuplikan layar yang memperlihatkan cara menghentikan WebJob berkelanjutan di portal Microsoft Azure.

Membuat WebJob yang dipicu secara manual

  1. Di portal Azure, buka halaman App Service aplikasi web App Service, aplikasi API, atau aplikasi seluler Anda.

  2. Di bawah Pengaturan di panel kiri, pilih WebJobs, lalu pilih Tambahkan.

    Cuplikan layar yang memperlihatkan cara menambahkan WebJob di aplikasi App Service di portal (WebJob yang dipicu secara manual).

  3. Isi pengaturan Tambahkan WebJob seperti yang ditentukan dalam tabel, lalu pilih Buat Webjob.

    Cuplikan layar yang memperlihatkan cara mengonfigurasi WebJob yang dipicu secara manual untuk aplikasi App Service.

    Pengaturan Contoh nilai Deskripsi
    Nama myTriggeredWebJob Nama WebJob yang unik. Harus dimulai dengan huruf atau angka dan tidak boleh berisi karakter khusus selain "-" dan "_".
    Unggahan File ConsoleApp1.zip File .zip yang berisi file executable atau skrip Anda dan file pendukung apa pun yang diperlukan untuk menjalankan program atau skrip. Jenis file skrip atau eksekusi yang didukung tercantum di bagian Jenis file yang didukung.
    Jenis Tersulut Jenis WebJobs dijelaskan sebelumnya di artikel ini.
    Memicu Panduan
  4. WebJob yang baru muncul di halaman WebJobs. Jika Anda melihat pesan yang mengatakan bahwa WebJob ditambahkan, tetapi Anda tidak dapat menemukannya, pilih Refresh.

  5. Untuk menjalankan WebJob yang dipicu secara manual, klik kanan WebJob dalam daftar dan pilih tombol Jalankan , lalu konfirmasi pilihan Anda.

    Cuplikan layar yang memperlihatkan cara menjalankan WebJob yang dipicu secara manual di portal Microsoft Azure.

Membuat WebJob terjadwal

Webjob yang telah dijadwalkan juga akan dipicu. Anda dapat menjadwalkan pemicu terjadi secara otomatis pada jadwal yang Anda tentukan.

  1. Di portal Azure, buka halaman App Service aplikasi web App Service, aplikasi API, atau aplikasi seluler Anda.

  2. Di bawah Pengaturan di panel kiri, pilih WebJobs, lalu pilih Tambahkan.

    Cuplikan layar yang memperlihatkan cara menambahkan WebJob di aplikasi App Service di portal (WebJob terjadwal).

  3. Isi pengaturan Tambahkan WebJob seperti yang ditentukan dalam tabel, lalu pilih Buat Webjob.

    Cuplikan layar yang memperlihatkan cara mengonfigurasi WebJob terjadwal di aplikasi App Service.

    Pengaturan Contoh nilai Deskripsi
    Nama myScheduledWebJob (pekerjaan web terjadwal saya) Nama WebJob yang unik. Harus dimulai dengan huruf atau angka dan tidak boleh berisi karakter khusus selain "-" dan "_".
    Unggahan File ConsoleApp.zip File .zip yang berisi file executable atau skrip Anda dan file pendukung apa pun yang diperlukan untuk menjalankan program atau skrip. Jenis file skrip atau eksekusi yang didukung tercantum di bagian Jenis file yang didukung.
    Jenis Tersulut Jenis WebJobs dijelaskan sebelumnya di artikel ini.
    Memicu Dijadwalkan Agar penjadwalan dapat berjalan dengan lancar, aktifkan fitur Always On. Fitur Always On tersedia hanya pada lapisan harga Dasar, Standar, dan Premium.
    Ekspresi CRON 0 0/20 * * * * Ekspresi CRON diuraikan di bagian berikut.
  4. WebJob yang baru muncul di halaman WebJobs. Jika Anda melihat pesan yang mengatakan bahwa WebJob ditambahkan, tetapi Anda tidak dapat menemukannya, pilih Refresh.

  5. WebJob terjadwal dijalankan sesuai dengan jadwal yang ditentukan oleh ekspresi CRON. Untuk menjalankannya secara manual kapan saja, klik kanan WebJob dalam daftar dan pilih tombol Jalankan , lalu konfirmasi pilihan Anda.

    Cuplikan layar yang memperlihatkan cara menjalankan WebJob yang dijadwalkan secara manual di portal Microsoft Azure.

Ekspresi NCRONTAB

Ekspresi NCRONTAB mirip dengan ekspresi CRON, tetapi menyertakan bidang keenam tambahan di awal untuk presisi waktu dalam hitungan detik. Anda dapat memasukkan ekspresi NCRONTAB di portal atau menyertakan settings.job file di akar file .zip WebJob Anda, seperti dalam contoh berikut:

{
    "schedule": "0 */15 * * * *"
}

Untuk informasi lebih lanjut, lihat Menjadwalkan WebJob yang dipicu.

Catatan

Zona waktu default yang digunakan untuk menjalankan ekspresi CRON adalah Waktu Universal Terkoordinasi (UTC). Agar ekspresi CRON Anda berjalan berdasarkan zona waktu lain, buat setelan aplikasi untuk aplikasi fungsi Anda yang bernama WEBSITE_TIME_ZONE. Untuk mempelajari lebih lanjut, lihat Zona waktu NCRONTAB.

Mengelola WebJobs

Anda dapat mengelola status eksekusi WebJobs individual yang berjalan di situs Anda dengan menggunakan portal Microsoft Azure. Buka Pengaturan>WebJobs, pilih WebJob, dan Anda bisa memulai dan menghentikan WebJob. Anda juga dapat melihat dan memodifikasi kata sandi webhook yang menjalankan WebJob.

Anda juga dapat mengonfigurasi pengaturan aplikasi bernama WEBJOBS_STOPPED dengan nilai 1 untuk menghentikan semua WebJobs yang berjalan di situs Anda. Anda dapat menggunakan metode ini untuk mencegah WebJobs yang bertabrakan berjalan baik di slot staging maupun produksi. Anda dapat menggunakan nilai 1 untuk pengaturan WEBJOBS_DISABLE_SCHEDULE guna menonaktifkan WebJobs berbasis pemicu di situs atau slot penahapan. Untuk slot, ingat untuk mengaktifkan opsi pengaturan slot Penyebaran agar pengaturannya sendiri tidak tertukar.

Menampilkan riwayat pekerjaan

  1. Untuk WebJob yang ingin Anda lihat, pilih Logs.

    Cuplikan layar yang memperlihatkan cara mengakses log untuk WebJob.

  2. Di halaman Detail WebJob, pilih waktu untuk melihat detail untuk satu pelaksanaan.

    Cuplikan layar yang memperlihatkan cara memilih eksekusi WebJob untuk melihat log terperincinya.

  3. Di halaman Detail Jalannya WebJob, Anda dapat memilih unduh untuk mendapatkan file teks log, atau memilih tautan breadcrumb WebJobs di bagian atas halaman untuk melihat log untuk WebJob yang berbeda.

Status dari WebJob

Berikut ini adalah daftar status WebJob umum:

  • Menginisialisasi: Aplikasi telah dimulai dan WebJob sedang melalui proses inisialisasinya.
  • Mulai: WebJob sedang dimulai.
  • Berjalan: WebJob sedang berjalan.
  • PendingRestart: WebJob berkelanjutan keluar dalam waktu kurang dari dua menit sejak dimulai untuk alasan apa pun, dan App Service menunggu 60 detik sebelum memulai ulang WebJob. Jika WebJob berkelanjutan berhenti setelah batas waktu dua menit, App Service tidak menunggu 60 detik dan segera memulai ulang WebJob.
  • Dihentikan: WebJob dihentikan (biasanya dari portal Microsoft Azure) dan saat ini tidak berjalan dan tidak akan berjalan sampai Anda memulainya lagi secara manual, bahkan untuk WebJob berkelanjutan atau terjadwal.
  • Dibatalkan: Ini dapat terjadi karena banyak alasan, seperti ketika WebJob yang berjalan lama mencapai penanda waktu habis.

Langkah selanjutnya

Tutorial: Menjalankan tugas latar belakang dengan WebJobs