Menjalankan tugas latar belakang dengan WebJobs di Azure App Service

Catatan

WebJobs untuk kontainer Windows, kode Linux, dan kontainer Linux sedang dalam pratinjau. WebJobs untuk kode Windows umumnya tersedia dan tidak dalam pratinjau.

Penyebaran WebJobs menggunakan portal Microsoft Azure untuk mengunggah executable atau skrip. Anda dapat menjalankan proses di latar belakang pada Azure App Service.

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

Gambaran Umum

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

Anda dapat menggunakan SDK Azure WebJobs dengan WebJobs untuk menyederhanakan berbagai tugas pemrograman. Untuk mengetahui informasi selengkapnya, lihat Apa yang dimaksud dengan SDK WebJobs.

Azure Functions menyediakan cara lain untuk menjalankan program dan skrip. Untuk perbandingan antara WebJobs dan Functions, lihat Memilih antara Flow, Logic Apps, Functions, dan WebJobs.

Jenis WebJob

Jenis file yang didukung untuk skrip atau program

Jenis file berikut ini didukung:
.cmd, .bat, .exe (menggunakan cmd Windows)
.ps1 (menggunakan PowerShell)
.sh (menggunakan Bash)
.php (menggunakan PHP)
.py (menggunakan Python)
.js (menggunakan Node.js)
.jar (menggunakan Java)

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 Dipicu
Segera 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 penelusuran kesalahan 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 mengalami waktu habis setelah 20 menit tidak aktif, dan hanya permintaan ke aplikasi web yang sebenarnya dapat mengatur ulang timer. Melihat konfigurasi aplikasi di portal Microsoft Azure atau membuat permintaan ke situs alat lanjutan (https://<app_name>.scm.azurewebsites.net) tidak mengatur ulang timer. Jika Anda menyetel aplikasi web yang meng-host pekerjaan Anda untuk terus berjalan, berjalan sesuai jadwal, atau menggunakan pemicu berdasarkan peristiwa, aktifkan setelan Selalu aktif di laman Konfigurasi Azure aplikasi web Anda. Pengaturan Selalu aktif membantu memastikan bahwa Jenis WebJobs ini berjalan dengan andal. Fitur ini hanya tersedia di tingkat harga Dasar, Standar, dan Premium.

Membuat 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. Dari 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 instans mult untuk aplikasi App Service.

    Pengaturan Sampel nilai Deskripsi
    Nama myContinuousWebJob Nama yang unik dalam aplikasi App Service. 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.
    Sisik Multi Instans Hanya tersedia untuk WebJobs Berkelanjutan. Menentukan apakah program atau skrip berjalan pada semua instans atau satu instans. Opsi untuk berjalan pada beberapa instans tidak berlaku untuk tingkat harga Gratis atau Bersama.
  4. WebJobs baru akan muncul di halaman WebJobs. Jika Anda melihat pesan yang mengatakan WebJob ditambahkan, tetapi Anda tidak melihatnya, 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 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. Dari 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 Sampel nilai Deskripsi
    Nama myTriggeredWebJob Nama yang unik dalam aplikasi App Service. 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 Dipicu Jenis WebJobs dijelaskan sebelumnya di artikel ini.
    Memicu Manual
  4. WebJobs baru akan muncul di halaman WebJobs. Jika Anda melihat pesan yang mengatakan WebJob ditambahkan, tetapi Anda tidak melihatnya, 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 Azure.

Membuat WebJob terjadwal

Webjob yang dijadwalkan juga 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. Dari 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 Sampel nilai Deskripsi
    Nama myScheduledWebJob Nama yang unik dalam aplikasi App Service. 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 Dipicu Jenis WebJobs dijelaskan sebelumnya di artikel ini.
    Memicu Dijadwalkan Agar penjadwalan berfungsi dengan andal, aktifkan fitur Grup Ketersediaan AlwaysOn. Grup Ketersediaan AlwaysOn hanya tersedia di tingkat harga Dasar, Standar, dan Premium.
    Ekspresi CRON 0 0/20 * * * * Ekspresi CRON diuraikan di bagian berikut.
  4. WebJobs baru akan muncul di halaman WebJobs. Jika Anda melihat pesan yang mengatakan WebJob ditambahkan, tetapi Anda tidak melihatnya, pilih Refresh.

  5. WebJob terjadwal dijalankan pada 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 Azure.

Ekspresi NCRONTAB

Anda dapat memasukkan ekspresi NCRONTAB di portal atau menyertakan file settings.job di akar file .zip WebJob Anda, seperti dalam contoh berikut:

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

Untuk mempelajari selengkapnya, lihat Menjadwalkan WebJobs 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 menjalankan masing-masing WebJobs yang berjalan pada situs Anda di portal Microsoft Azure. Buka Pengaturan> WebJobs, pilih WebJob, dan Anda dapat memulai dan menghentikan WebJob. Anda juga dapat melihat dan memodifikasi kata sandi webhook yang menjalankan WebJob.

Anda juga dapat menambahkan setelan aplikasi yang dinamai WEBJOBS_STOPPED dengan nilai 1 untuk menghentikan semua WebJobs yang berjalan di situs web Anda. Anda dapat menggunakan metode ini untuk mencegah WebJobs yang bertentangan berjalan baik di slot penahapan maupun produksi. Anda dapat menggunakan nilai 1 untuk WEBJOBS_DISABLE_SCHEDULE pengaturan untuk menonaktifkan pemicu WebJobs di situs web atau slot penahapan. Untuk penahapan, ingat untuk mengaktifkan opsi setelan penahapan Penyebaran sehingga setelannya sendiri tidak tertukar.

Menampilkan riwayat pekerjaan

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

    Cuplikan layar yang memperlihatkan cara mengakses log untuk WebJob.

  2. Di halaman Detail WebJobs, pilih waktu untuk melihat detail untuk satu eksekusi.

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

  3. Di halaman Detail Eksekusi 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 WebJob

Berikut ini adalah daftar status WebJob umum:

  • Menginisialisasi Aplikasi telah dimulai dan WebJob sedang melalui proses inisialisasinya.
  • Memulai WebJob sedang dimulai.
  • Menjalankan WebJob sedang berjalan.
  • PendingRestart A WebJob berkelanjutan keluar dalam waktu kurang dari dua menit karena dimulai karena alasan apa pun, dan App Service menunggu 60 detik sebelum memulai ulang WebJob. Jika WebJob berkelanjutan keluar setelah tanda dua menit, App Service tidak menunggu 60 detik dan segera memulai ulang WebJob.
  • Menghentikan WebJob dihentikan (biasanya dari portal 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 batas waktu.

Langkah berikutnya

SDK Azure WebJobs dapat digunakan dengan WebJobs untuk menyederhanakan berbagai tugas pemrograman. Untuk mengetahui informasi selengkapnya, lihat Apa yang dimaksud dengan SDK WebJobs.