› Forumlar › OUTSYSTEMS’TA TIMER KULLANARAK ASENKRON İŞLEMLER GERÇEKLEŞTİRMEK
Timerlar, Server Actionların planlanan bir zamanda periyodik olarak yürütülmesini sağlayan bir OutSystems aracıdır. OutSystems farklı timerları aynı anda çalıştırmamıza izin verir, ancak aynı Timer aynı anda birden fazla çalıştırılamaz. Bir timerı programatik olarak isteğe bağlı veya daha önceden planlanan zamanlarda çalıştırabiliriz.
Timerları kullanabileceğimiz bazı alanlar aşağıda görülmektedir:
Örnek uygulamızda gider bilgilerini tabloda gösteren bir uygulama görmekteyiz. Tablonun üzerisinde buraya verileri yükleyebileceğimiz bir form ve buton bulunmakta.
Butonun içerisine baktığımızda yüklenen dosya üzerisindeki verileri databaseye aktaran bir server action bulunduğunu görebiliriz. Fakat bu şekilde uygulanmış bir programda, kullanıcı büyük bir dosya yüklemeye çalışır ise timeout hataları ile karşılaşma olasılığımız yüksektir.
Dosyayı hemen işleme sokmak yerine, bu dosyayı databaseye kaydedip arkaplanda bu dosyayı işler isek bu sorunu çözebiliriz. Öncelikle Databasede binary dosyalarını kayıt edeceğimiz bir aggregate oluşturmalıyız. File attributesi Binary tipinde olmalıdır.
Daha sonrasında “Procceses” sekmesini kullanarak, bir timer oluşturacağız. Oluşturulan her bir timer dosyası için bir server action eklememiz gerekmekte. Burada yeni bir server action oluşturma seçeneğini seçebiliriz.
Bu server action içerisinde son eklenen dosyayı database üzerisinden çekeceğiz. Daha sonra dosyaları verileri işleyecek server actionı çalıştıracağız. Son olarak veri bütünlüğünü koruyabilmek üzere, bu dosyayı databaseden sileceğiz.
Dosyayı yükleme adımına geldiğimizde ise yeni bir server action oluşturarak içerisinde kullanıcının yüklediği dosyayı databaseye kayıt edeceğiz. Daha sonra Timer altında bulunan Wake actionı ile Timerı çalıştıracağız. Bu action arkaplanda asenkron olarak yüklenen dosyayı işlememizi sağlayacaktır.
|Cookie
|Duration
|Description
|cookielawinfo-checbox-analytics
|11 months
|This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
|cookielawinfo-checbox-functional
|11 months
|The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
|cookielawinfo-checbox-others
|11 months
|This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
|cookielawinfo-checkbox-necessary
|11 months
|This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
|cookielawinfo-checkbox-performance
|11 months
|This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
|viewed_cookie_policy
|11 months
|The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.