Menjalankan tugas latar belakang dengan WebJobs di 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, Anda menggunakan Visual Studio untuk mengembangkan dan menyebarkan WebJobs, lihat Menyebarkan WebJobs menggunakan Visual Studio.
Catatan
WebJobs untuk kontainer Windows, kode Linux, dan kontainer Linux sedang dalam pratinjau. WebJobs untuk kode Windows umumnya tersedia dan tidak dalam pratinjau.
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.
Catatan
Mulai 1 Juni 2024, semua aplikasi App Service yang baru dibuat akan memiliki opsi untuk menghasilkan nama host default yang unik menggunakan konvensi <app-name>-<random-hash>.<region>.azurewebsites.net
penamaan . Nama aplikasi yang ada akan tetap tidak berubah.
Contoh: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Untuk detail lebih lanjut, lihat Nama Host Default Unik untuk Sumber Daya App Service.
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.
Di portal Azure, buka halaman App Service aplikasi web App Service, aplikasi API, atau aplikasi seluler Anda.
Dari panel kiri, pilih WebJobs, lalu pilih Tambahkan.
Isi pengaturan Tambahkan WebJob seperti yang ditentukan dalam tabel, lalu pilih Buat Webjob.
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. WebJobs baru akan muncul di halaman WebJobs. Jika Anda melihat pesan yang mengatakan WebJob ditambahkan, tetapi Anda tidak melihatnya, pilih Refresh.
Untuk menghentikan atau memulai ulang WebJob berkelanjutan, klik kanan WebJob dalam daftar dan pilih tombol Hentikan atau Jalankan , lalu konfirmasi pilihan Anda.
Membuat WebJob yang dipicu secara manual
Di portal Azure, buka halaman App Service aplikasi web App Service, aplikasi API, atau aplikasi seluler Anda.
Dari panel kiri, pilih WebJobs, lalu pilih Tambahkan.
Isi pengaturan Tambahkan WebJob seperti yang ditentukan dalam tabel, lalu pilih Buat 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 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 WebJobs baru akan muncul di halaman WebJobs. Jika Anda melihat pesan yang mengatakan WebJob ditambahkan, tetapi Anda tidak melihatnya, pilih Refresh.
Untuk menjalankan WebJob yang dipicu secara manual, klik kanan WebJob dalam daftar dan pilih tombol Jalankan , lalu konfirmasi pilihan Anda.
Membuat WebJob terjadwal
Webjob yang dijadwalkan juga dipicu. Anda dapat menjadwalkan pemicu terjadi secara otomatis pada jadwal yang Anda tentukan.
Di portal Azure, buka halaman App Service aplikasi web App Service, aplikasi API, atau aplikasi seluler Anda.
Dari panel kiri, pilih WebJobs, lalu pilih Tambahkan.
Isi pengaturan Tambahkan WebJob seperti yang ditentukan dalam tabel, lalu pilih Buat Webjob.
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. WebJobs baru akan muncul di halaman WebJobs. Jika Anda melihat pesan yang mengatakan WebJob ditambahkan, tetapi Anda tidak melihatnya, pilih Refresh.
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.
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 bisa 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
Untuk WebJob yang ingin Anda lihat, pilih Log.
Di halaman Detail WebJobs, pilih waktu untuk melihat detail untuk satu eksekusi.
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.