Penjadwal Tugas di backend aplikasi AppMaster, seperti dalam kasus klasik backend, membuat skenario berulang. Misalnya, ketika Anda perlu melakukan tindakan tertentu pada jadwal. Contoh klasik dari tugas-tugas tersebut adalah contoh membersihkan file-file sementara di server, backup mingguan, menghasilkan laporan sesuai dengan algoritma yang diberikan, dll.
Mari kita pertimbangkan contoh penggunaan penjadwal tugas di backend aplikasi AppMaster. Misalkan Anda ingin membangun sebuah proses yang setiap pagi pukul 9.00 akan mengirimkan cuaca kepada pengguna ke nomor ponselnya.
Dengan demikian, tugas dibagi menjadi beberapa tahap logis:
- Memasang dan mengonfigurasi modul untuk mengirim pesan seluler
- Membuat dan mengonfigurasi proses API permintaan eksternal
- Menyiapkan penjadwal di backend aplikasi
1. Memasang dan mengonfigurasi modul untuk mengirim pesan seluler. Modul Nexmo memungkinkan Anda untuk mengintegrasikan ke dalam aplikasi AppMaster kemampuan untuk mengirim pesan SMS ke nomor yang dipilih.
- Kunci API - Kunci API yang dapat diperoleh di akun Nexmo Anda ( https://dashboard.nexmo.com/settings );
- Rahasia API - kunci pribadi yang digunakan bersama dengan kunci API untuk mengidentifikasi pengguna. Anda juga bisa mendapatkannya di akun Nexmo Anda ( https://dashboard.nexmo.com/settings );
- Dari nomor - nomor yang ditentukan saat pendaftaran di akun Nexmo Anda.
Proses bisnis berikut diinstal secara otomatis dengan instalasi modul:
- Nexmo.Send SMS - memungkinkan Anda mengirim pesan ke nomor yang ditentukan melalui
Modul Nexmo:
- Telepon [telepon] - nomor telepon tujuan pengiriman pesan;
- Konten [string] - pesan teks;
2. Sumber daya web OpenWeather API gratis akan digunakan sebagai sumber data cuaca ( https://openweathermap.org/api ). Langkah pertama adalah membuat template API permintaan eksternal. Templat permintaan API disajikan di bagian Proses Bisnis pada tab Permintaan API Eksternal. Untuk membuat template baru, klik Buat permintaan API.
Jenis permintaan: GET
Alamat permintaan: https://api.openweathermap.org/data/2.5/weather
Parameter Kueri:
- Lat [string] - lintang
- Lon [string] - bujur
- Appid [string] - Kunci API OpenWeather
Sebagai bagian dari tugas ini, kami hanya tertarik pada beberapa bidang badan respons di bagian utama ( https://openweathermap.org/api/one-call-3 ).
- Temp [float] - suhu
- Temp_min [float] - suhu min
- Temp_max [float] - suhu maks
- Tekanan [float] - tekanan
- Kelembaban [float] - kelembapan
3. Sebelum menyiapkan penjadwal tugas, Anda perlu membuat Proses Bisnis yang akan menerima informasi cuaca melalui API. Proses bisnis terlihat sebagai berikut:
- Make Weather Query Model In - membuat model parameter permintaan virtual. Lon, lat - koordinat lokasi yang diinginkan, appid - kunci API dari layanan OpenWeather;
- Permintaan API: Cuaca - proses bisnis yang bertanggung jawab untuk berinteraksi dengan OpenWeather API
- Perluas Cuaca: Model Tubuh Keluar - diperlukan untuk menerapkan model respons Tubuh
- Expand Weather: Body Model Out_main - memperluas model utama body dari request-respons Body untuk mendapatkan suhu (temp).
- To String - mengubah nilai bidang temp menjadi tipe string;
- Nexmo: Kirim SMS - mengirim pesan dengan informasi tentang suhu (Konten) ke nomor telepon yang ditentukan (Telepon)
Siapkan penjadwal di bagian proses bisnis dari tab Penjadwal.
Pengaturan penjadwal di tab Jadwal berbeda tergantung pada jenisnya.
Mari kita pertimbangkan masing-masing secara detail
1. Harian - memungkinkan konfigurasi jadwal harian
- Waktu - menentukan waktu dalam UTC+0 di mana penjadwal akan memulai BP yang dipilih;
- Hari dalam seminggu - menentukan hari dalam seminggu untuk penjadwal bekerja;
- Mulai secara otomatis - jika disetel ke True, BP baru tidak akan dimulai jika BP sebelumnya belum selesai. Nilai default: Salah.
- Coba lagi secara otomatis - memulai ulang proses secara otomatis jika terputus/tidak berhasil dimulai.
Coba lagi pemrosesan item yang gagal - jumlah upaya untuk memulai kembali proses;
Tunggu sebelum setiap upaya coba lagi - tunda waktu sebelum setiap pemotretan untuk memulai kembali proses;
- Force quit - menghentikan proses secara paksa jika tidak selesai dalam beberapa detik. Benar, secara default. Jumlah detik sampai selesai adalah 3 detik, secara default.
2. Bulanan - perencana bulanan
- Waktu - menentukan waktu dalam UTC+0 di mana penjadwal akan memulai BP yang dipilih;
- Hari dalam seminggu - terdiri dari dua pengaturan:
Frekuensi berulang:
- Setiap pertama
- Setiap detik
- Setiap sepertiga
- Setiap empat
- Hari ini
Hari dalam seminggu - menentukan hari dalam seminggu
- Bulan – bulan sudah ditentukan
- Auto Start - Jika disetel ke True, PSU baru tidak akan dimulai kecuali segera diselesaikan. Nilai default: Salah.
- Coba lagi secara otomatis - memulai ulang proses secara otomatis jika terputus/tidak dimulai
Coba lagi memproses item yang gagal - jumlah proses yang dimulai ulang;
Tunggu sebelum setiap percobaan ulang - waktu tunda sebelum setiap upaya untuk memulai kembali proses;
- Force Quit - Mengakhiri proses jika tidak selesai dalam beberapa detik. Benar, secara default. Jumlah detik sampai selesai adalah 3 detik, secara default.
3. Secara berkala - memungkinkan Anda mengonfigurasi frekuensi penjadwal secara fleksibel
- Every - kemampuan untuk mengatur pengulangan setiap N detik/menit/jam/hari. Standar: setiap 1 jam.
- Mulai secara otomatis - jika disetel ke True, BP baru tidak akan dimulai jika BP sebelumnya belum selesai. Nilai default: Salah.
- Coba lagi secara otomatis - memulai ulang proses secara otomatis jika terputus/tidak berhasil dimulai
Coba lagi pemrosesan item yang gagal - jumlah upaya untuk memulai kembali proses;
Tunggu sebelum setiap upaya coba lagi - tunda waktu sebelum setiap pemotretan untuk memulai kembali proses;
- Force quit - menghentikan proses secara paksa jika tidak selesai dalam beberapa detik. Benar, secara default. Jumlah detik sampai selesai adalah 3 detik, secara default.
4. Setelah memulai aplikasi - perencana tugas satu kali
- Delay - mendefinisikan penundaan antara aplikasi mulai dan startup. Default - 0 detik
- Coba lagi secara otomatis - memulai ulang proses secara otomatis jika terputus/tidak berhasil dimulai
Coba lagi pemrosesan item yang gagal - jumlah upaya untuk memulai kembali proses;
Tunggu sebelum setiap upaya coba lagi - tunda waktu sebelum setiap pemotretan untuk memulai kembali proses;
- Force quit - menghentikan proses secara paksa jika tidak selesai dalam beberapa detik. Benar, secara default. Jumlah detik sampai selesai adalah 3 detik, secara default.
5. Sebelum menyelesaikan aplikasi - jalankan penjadwal setiap kali aplikasi berakhir
- Coba lagi secara otomatis - memulai ulang proses secara otomatis jika terputus/tidak berhasil dimulai
Coba lagi pemrosesan item yang gagal - jumlah upaya untuk memulai kembali proses;
Tunggu sebelum setiap upaya coba lagi - tunda waktu sebelum setiap upaya untuk memulai kembali proses;
- Force quit - menghentikan proses secara paksa jika tidak selesai dalam beberapa detik. Benar, secara default. Jumlah detik sampai selesai adalah 3 detik, secara default.
Di tab Params dari pengaturan penjadwal, parameter juga dapat diteruskan ke input BP saat diluncurkan oleh penjadwal:
Dalam contoh kami, pengaturan penjadwal terlihat seperti ini:
- Pesan akan dikirim setiap hari pukul 9 pagi UTC+0
- Secara otomatis mencoba memulai kembali proses 3 kali dengan penundaan 10 menit di antara upaya jika proses tidak segera dimulai;
- Mengakhiri proses secara paksa jika belum selesai dalam waktu tiga detik.
Aplikasi kami hidup dan berfungsi di backend, jadi agar berfungsi, cukup untuk memublikasikannya.