OUTSYSTEMS’TA TIMER KULLANARAK ASENKRON İŞLEMLER GERÇEKLEŞTİRMEK

Forumlar OUTSYSTEMS’TA TIMER KULLANARAK ASENKRON İŞLEMLER GERÇEKLEŞTİRMEK

  • Bu konu boş.
  • Post
    BAYPM
    Moderatör

    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:

    • Rutin işlemleri gerçekleştirmek. Örneğin kullanıcılara eposta gönderilmesi.
    • Verilerin ön yüklenmesi.
    • Ağır işlem yükünü hafifletmek. Örneğin çok fazla hesaplama gerektiren server actionlar.
    • Büyük verileri işlemek. Örneğin Çok büyük verili dosyaları yüklemeye çalışmak

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

  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.