AppMaster uygulamasının arka ucundaki Görev Zamanlayıcı, arka ucun klasik durumunda olduğu gibi yinelenen senaryolar oluşturur. Örneğin, bir programa göre belirli bir eylem yapmanız gerektiğinde. Bu tür görevlerin klasik bir örneği, sunucudaki geçici dosyaları temizleme, haftalık yedeklemeler, belirli bir algoritmaya göre raporlar oluşturma vb.
AppMaster uygulamasının arka ucunda görev zamanlayıcıyı kullanma örneğini ele alalım. Her sabah saat 9.00'da kullanıcıya hava durumunu cep telefonu numarasına gönderecek bir süreç oluşturmak istediğinizi varsayalım.
Böylece, görev birkaç mantıksal aşamaya ayrılmıştır:
- Mobil mesaj göndermek için modülün kurulması ve yapılandırılması
- Harici istek API süreci oluşturma ve yapılandırma
- Uygulama arka ucunda bir zamanlayıcı ayarlama
1. Mobil mesaj göndermek için modülün kurulması ve yapılandırılması. Nexmo modülü, AppMaster uygulamasına seçilen bir numaraya SMS mesajları gönderme özelliğini entegre etmenize olanak tanır.
- API Anahtarı - Nexmo hesabınızdan edinilebilecek API anahtarı ( https://dashboard.nexmo.com/settings );
- API Gizli Anahtarı - kullanıcıyı tanımlamak için API anahtarıyla birlikte kullanılan özel bir anahtar. Ayrıca Nexmo hesabınızdan da edinebilirsiniz ( https://dashboard.nexmo.com/settings );
- Numaradan - Nexmo hesabınıza kayıt sırasında belirtilen numara .
Modül kurulumuyla birlikte aşağıdaki iş süreçleri otomatik olarak kurulur:
- Nexmo.Send SMS - belirtilen numaraya mesaj göndermenizi sağlar.
Nexmo modülü:
- Telefon [telefon] - mesajın gönderileceği telefon numarası;
- İçerik [dize] - metin mesajı;
2. Ücretsiz OpenWeather API web kaynağı, hava durumu veri kaynağı olarak kullanılacaktır ( https://openweathermap.org/api ). İlk adım, harici bir istek API şablonu oluşturmaktır. API istek şablonları, Harici API İstekleri sekmesinin İş Süreci bölümünde sunulur. Yeni bir şablon oluşturmak için API isteği oluştur'a tıklayın.
İstek türü: GET
İstek adresi: https://api.openweathermap.org/data/2.5/weather
Sorgu Parametreleri:
- Enlem [dize] - enlem
- Lon [string] - boylam
- Appid [dize] - OpenWeather API Anahtarı
Bu görevin bir parçası olarak, ana yanıt gövdesinin yalnızca birkaç alanıyla ilgileniyoruz ( https://openweathermap.org/api/one-call-3 ).
- Sıcaklık [yüzdürme] - sıcaklık
- Temp_min [float] - minimum sıcaklık
- Temp_max [float] - maksimum sıcaklık
- Basınç [şamandıra] - basınç
- Nem [yüzer] - nem
3. Görev zamanlayıcıyı kurmadan önce, API aracılığıyla hava durumu bilgilerini alacak bir İş Süreci oluşturmanız gerekir. İş Süreci aşağıdaki gibi görünür:
- Hava Durumu Sorgu Modelini İçeri Yap - sanal bir istek parametre modeli oluşturur. Lon, lat - istenen konumun koordinatları, appid - OpenWeather hizmetinin API anahtarı;
- API İsteği: Hava Durumu - OpenWeather API ile etkileşimden sorumlu iş süreci
- Hava Durumu Genişletin: Vücut Modeli Çıkışı - Vücut yanıt modelini dağıtmak için gerekli
- Genişlet Hava Durumu: Gövde Modeli Out_main - sıcaklığı (sıcaklık) almak için istek-yanıt Gövdesinin gövdesinin ana modelini genişletir.
- Dizeye - geçici alan değerini dize türüne dönüştürür;
- Nexmo: SMS Gönder - belirtilen telefon numarasına (Telefon) sıcaklık (İçerik) hakkında bilgi içeren bir mesaj gönderir
Zamanlayıcı sekmesinin iş süreci bölümünde bir zamanlayıcı ayarlayın.
Zamanlama sekmesindeki Zamanlayıcı ayarları, türlerine göre farklılık gösterir.
Her birini ayrıntılı olarak ele alalım
1. Günlük - günlük programların yapılandırılmasına izin verir
- Zaman - zamanlayıcının seçilen BP'yi başlatacağı UTC+0'daki zamanı tanımlar;
- Haftanın günleri - zamanlayıcının çalışacağı haftanın günlerini tanımlar;
- Otomatik olarak başlat - True olarak ayarlanırsa, önceki tamamlanmamışsa yeni bir BP başlamaz. Varsayılan değer: Yanlış.
- Otomatik olarak yeniden dene - kesintiye uğradıysa/başarıyla başlatılmadıysa işlemi otomatik olarak yeniden başlatır.
Başarısız öğelerin işlenmesini yeniden deneme - süreci yeniden başlatma denemelerinin sayısı;
Her yeniden deneme denemesinden önce bekleyin - süreci yeniden başlatmak için her çekimden önce gecikme süresi;
- Zorla bırakma - birkaç saniye içinde tamamlanmazsa işlemi zorla sonlandırın. Doğru, varsayılan olarak. Tamamlanana kadar geçen saniye sayısı varsayılan olarak 3 saniyedir.
2. Aylık - aylık planlayıcı
- Zaman - zamanlayıcının seçilen BP'yi başlatacağı UTC+0'daki zamanı tanımlar;
- Haftanın günleri - iki ayardan oluşur:
Tekrarlama sıklığı:
- Her ilk
- Her saniye
- her üçte bir
- her dörtte bir
- Bugün
Haftanın günü - haftanın gününü tanımlar
- Ay - ay belirlenir
- Otomatik Başlatma - Doğru olarak ayarlanırsa, yakında tamamlanmadıkça yeni bir PSU başlatılmayacaktır. Varsayılan değer: Yanlış.
- Otomatik olarak yeniden dene - kesintiye uğradıysa/başlatılmadıysa işlemi otomatik olarak yeniden başlatır
Başarısız öğeleri işlemeyi yeniden deneyin - işlemin yeniden başlama sayısı;
Her yeniden denemeden önce bekleyin - süreci yeniden başlatmaya yönelik her denemeden önceki gecikme süresi;
- Çıkmaya Zorla - Birkaç saniye içinde tamamlanmayan bir işlemi sonlandırır. Doğru, varsayılan olarak. Tamamlanana kadar geçen saniye sayısı varsayılan olarak 3 saniyedir.
3. Periyodik olarak - zamanlayıcının sıklığını esnek bir şekilde yapılandırmanıza olanak tanır
- Her - her N saniyede/dakika/saat/günde bir tekrarlanabilirliği ayarlama yeteneği. Varsayılan: her 1 saatte bir.
- Otomatik olarak başlat - True olarak ayarlanırsa, önceki tamamlanmamışsa yeni bir BP başlamaz. Varsayılan değer: Yanlış.
- Otomatik olarak yeniden dene - kesintiye uğradıysa/başarıyla başlatılmadıysa işlemi otomatik olarak yeniden başlatır
Başarısız öğelerin işlenmesini yeniden deneme - süreci yeniden başlatma denemelerinin sayısı;
Her yeniden deneme denemesinden önce bekleyin - süreci yeniden başlatmak için her çekimden önce gecikme süresi;
- Zorla bırakma - birkaç saniye içinde tamamlanmazsa işlemi zorla sonlandırın. Doğru, varsayılan olarak. Tamamlanana kadar geçen saniye sayısı varsayılan olarak 3 saniyedir.
4. Uygulamayı başlattıktan sonra - tek seferlik görev planlayıcı
- Gecikme - uygulama başlatma ve başlatma arasındaki gecikmeyi tanımlar. Varsayılan - 0 sn
- Otomatik olarak yeniden dene - kesintiye uğradıysa/başarıyla başlatılmadıysa işlemi otomatik olarak yeniden başlatır
Başarısız öğelerin işlenmesini yeniden deneme - süreci yeniden başlatma denemelerinin sayısı;
Her yeniden deneme denemesinden önce bekleyin - süreci yeniden başlatmak için her çekimden önce gecikme süresi;
- Zorla bırakma - birkaç saniye içinde tamamlanmazsa işlemi zorla sonlandırın. Doğru, varsayılan olarak. Tamamlanana kadar geçen saniye sayısı varsayılan olarak 3 saniyedir.
5. Uygulamayı bitirmeden önce - uygulama her sona erdiğinde zamanlayıcıyı çalıştırın
- Otomatik olarak yeniden dene - kesintiye uğradıysa/başarıyla başlatılmadıysa işlemi otomatik olarak yeniden başlatır
Başarısız öğelerin işlenmesini yeniden deneme - süreci yeniden başlatma denemelerinin sayısı;
Her yeniden deneme denemesinden önce bekleyin - süreci yeniden başlatmaya yönelik her denemeden önceki gecikme süresi;
- Zorla bırakma - birkaç saniye içinde tamamlanmazsa işlemi zorla sonlandırın. Doğru, varsayılan olarak. Tamamlanana kadar geçen saniye sayısı varsayılan olarak 3 saniyedir.
Zamanlayıcı ayarlarının Params sekmesinde, zamanlayıcı tarafından başlatıldığında BP girişine parametreler iletmek de mümkündür:
Örneğimizde, zamanlayıcı ayarları şöyle görünür:
- Mesajlar her gün saat 9:00 UTC+0'da gönderilecek
- İşlem hemen başlamadıysa, denemeler arasında 10 dakikalık bir gecikmeyle işlemi 3 kez otomatik olarak yeniden başlatmayı dener;
- Üç saniye içinde tamamlanmayan bir işlemi zorla sonlandırır.
Uygulamamız arka uçta yaşıyor ve çalışıyor, bu yüzden çalışması için yayınlamanız yeterli.