Menjalankan proses di latar belakang dengan WebJobs dalam Azure App Service

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 yang Anda gunakan Visual Studio 2019 untuk mengembangkan dan menyebarkan WebJobs, lihat Deploy 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, aplikasi API, atau aplikasi seluler. Tidak ada biaya tambahan untuk menggunakan WebJobs.

Anda dapat menggunakan SDK Azure WebJobs dengan WebJobs untuk menyederhanakan berbagai tugas pemrograman. WebJobs belum didukung untuk App Service di Linux. Untuk mengetahui informasi selengkapnya, lihat Apa yang dimaksud dengan WebJobs SDK.

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 WebJobs

Tabel berikut ini menjelaskan perbedaan antara WebJobs berkelanjutan dan dipicu.

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 WebJobs 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.

Jenis file yang didukung untuk skrip atau program

Jenis file berikut ini didukung:

  • .cmd, .bat, .exe (menggunakan Windows cmd)
  • .ps1 (menggunakan PowerShell)
  • .sh (menggunakan Bash)
  • .php (menggunakan PHP)
  • .py (menggunakan Python)
  • .js (menggunakan Node.js)
  • .jar (using Java)

Membuat WebJobs 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 panel kiri halaman App Service aplikasi Anda, cari dan pilih WebJobs.

    Select WebJobs

  3. Di halaman WebJobs, pilih Tambahkan.

    WebJob page

  4. Isi pada pengaturan Tambahkan WebJob seperti yang ditentukan dalam tabel.

    Screenshot that shows the Add WebJob settings that you need to configure.

    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 memuat eksekusi atau file skrip Anda serta file pendukung 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.
    Skala Multi instans Hanya tersedia untuk WebJobs Berkelanjutan. Menentukan apakah program atau skrip berjalan pada semua instans atau hanya satu instans. Opsi untuk berjalan pada beberapa instans tidak berlaku untuk tingkat harga Gratis atau Bersama.
  5. PilihOK.

    WebJobs baru akan muncul di halaman WebJobs. Jika Anda melihat pesan yang mengatakan WebJob ditambahkan, tetapi Anda tidak melihatnya, pilih Refresh.

    List of WebJobs

  6. Untuk menghentikan atau menghidupkan ulang WebJob berkelanjutan, klik kanan WebJob dalam daftar dan pilih Hentikan atau Mulai.

    Stop a continuous WebJob

Membuat WebJobs yang dipicu secara manual

  1. Di portal Azure, cari dan pilih App Services.

  2. Pilih aplikasi web Anda, aplikasi API, atau aplikasi ponsel dari daftar.

  3. Di panel kiri halaman App Service aplikasi Anda, cari dan pilih WebJobs.

    Select WebJobs

  4. Di halaman WebJobs, pilih Tambahkan.

    WebJob page

  5. Isi pada pengaturan Tambahkan WebJob seperti yang ditentukan dalam tabel.

    Screenshot that shows the settings that need to be set for creating a manually triggered WebJob.

    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 ConsoleApp.zip File .zip memuat eksekusi atau file skrip Anda serta file pendukung 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.
    Pemicu Manual
  6. PilihOK.

    WebJobs baru akan muncul di halaman WebJobs. Jika Anda melihat pesan yang mengatakan WebJob ditambahkan, tetapi Anda tidak melihatnya, pilih Refresh.

    List of WebJobs-triggered

  7. Untuk menjalankan WebJobs, klik kanan namanya dalam daftar dan pilih Jalankan.

    Run WebJob

Membuat WebJobs terjadwal

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

  1. Di portal Azure, cari dan pilih App Services.

  2. Pilih aplikasi web Anda, aplikasi API, atau aplikasi ponsel dari daftar.

  3. Di panel kiri halaman App Service aplikasi Anda, cari dan pilih WebJobs.

    Select WebJobs

  4. Di halaman WebJobs, pilih Tambahkan.

    WebJob page

  5. Isi pada pengaturan Tambahkan WebJob seperti yang ditentukan dalam tabel.

    Add WebJob page

    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 memuat eksekusi atau file skrip Anda serta file pendukung 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.
    Pemicu Terjadwal 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.
  6. PilihOK.

    WebJobs baru akan muncul di halaman WebJobs. Jika Anda melihat pesan yang mengatakan WebJob ditambahkan, tetapi Anda tidak melihatnya, pilih Refresh.

    List of WebJobs-scheduled

Ekspresi NCRONTAB

Anda dapat memasukkan ekspresi NCRONTAB di portal atau menyertakan file settings.job di akar file .zip WebJobs 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. Cukup buka Setelan>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. Ini bisa berguna sebagai cara untuk mencegah WebJobs yang saling bertentangan berjalan baik dalam penahapan dan slot 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.

Melihat riwayat pekerjaan

  1. Pilih WebJobs lalu untuk melihat riwayat, pilih Log.

    Logs button

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

    WebJob Details

  3. Di halaman Detail Eksekusi WebJobs, pilih Alihkan Output untuk melihat teks konten log.

    Web job run details

    Untuk melihat teks output di jendela browser terpisah, pilih unduh. Untuk mengunduh teks itu sendiri, klik kanan unduh dan gunakan opsi browser Anda untuk menyimpan konten file.

  4. Pilih tautan breadcrumb WebJobs di bagian atas halaman untuk membuka daftar WebJobs.

    WebJob breadcrumb

    List of WebJobs in history dashboard

Langkah berikutnya

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