




İşleri Queue Lara Kullanıcı Bazında Nasıl Adilce Dağıtabilirim?
-
hola
şimdi şöyle bir sorunum var, (henüz yok ama ileride olacak).
bir uygulamam var, uygulama saas olarak çalışıyor ve bir sürü kullanıcı olacak. bu kullanıcıların yapacağı çok zaman alacak işleri hep queue ile yapıyorum. lakin şimdi diyelim bir tane queuemuz var, bu qeueya her kullanıcı için işleri atıyoruz, 5 tane de worker process imiz var buraya gelen işleri yapıyor.
bir tane kullanıcı gelip üst üste 5 tane iş atarsa diğerleri onu beklemek zorunda kalacak. bunun önüne nasıl geçebilirim ? nasıl dağıtmalıyım bunu ? aynı kullanıcının şu anki aktif iş sayısına bakıp bekletmeyi düşündüm ama bunun için de yine queue dan işleri çekip bakmam gerek, bu doğru bir çözüm gibi gelmedi bu yüzden
her kullanıcı için bir worker spawn edip sonra öldüreyim dedim ama o da çok karmaşıklaştırıyorum ve saçmalıyorum gibi geldi. ne diye aratacağımı da bulamadım.
napmak lazım gelir burda ?
-
her kullanıcı için instance(worker) yaratıp yok etmek kabul edilen bir yöntemdir. Aws gibi yerlerde spot instancelar ile ucuzada çözebilirsin veya eventin tipine göre serverless'da kullanıp sonsuz büyüme elde edebilirsin.
başka bir pattern ise process monitor yazarsın workerlarda bir kullanıcının belli sayıda işi almasını kontrol eder üstüne çıkartmaz altına kaldıkça yeni işi çeker -
Queue için hangi tool'u kullanıyorsun?
-
JPriest bunu yazdı
Queue için hangi tool'u kullanıyorsun?
Redis + laravel
-
Queue eklemeden önce o kişiye ait kuyrukta bekleyen işleri ve kuyruktaki toplam işler saydırarak delay vermek veya queue priority ile düşük öncelikli olarak kaydetmek bir çözüm olabilir belki.
-
coder2 bunu yazdı
Queue eklemeden önce o kişiye ait kuyrukta bekleyen işleri ve kuyruktaki toplam işler saydırarak delay vermek veya queue priority ile düşük öncelikli olarak kaydetmek bir çözüm olabilir belki.
ben de bunu düşündüm ama queue ya gidip işlere bakmam gerekiyor bunun için. queue ya bakmadan dağıtma kısmında halledebilsem güzel olur diye düşündm.
-
Benim yazdıklarıma neden yorum yok ben saksı değilim :p
< ="//www.youtube.com//x9fxjKzCpME" width="560" height="314" allowfullscreen="allowfullscreen">
-
sandman bunu yazdı
her kullanıcı için instance(worker) yaratıp yok etmek kabul edilen bir yöntemdir. Aws gibi yerlerde spot instancelar ile ucuzada çözebilirsin veya eventin tipine göre serverless'da kullanıp sonsuz büyüme elde edebilirsin.
başka bir pattern ise process monitor yazarsın workerlarda bir kullanıcının belli sayıda işi almasını kontrol eder üstüne çıkartmaz altına kaldıkça yeni işi çekerYine kaliteni konuşturmuşsun hocam :)
-
sandman bunu yazdı
Benim yazdıklarıma neden yorum yok ben saksı değilim :p
< ="//www.youtube.com//x9fxjKzCpME" width="560" height="314" allowfullscreen="allowfullscreen">
yazdığın şeyi biraz araştırıp öyle cevap vereyim dedim ondan :D
sandman bunu yazdıher kullanıcı için instance(worker) yaratıp yok etmek kabul edilen bir yöntemdir. Aws gibi yerlerde spot instancelar ile ucuzada çözebilirsin veya eventin tipine göre serverless'da kullanıp sonsuz büyüme elde edebilirsin.
başka bir pattern ise process monitor yazarsın workerlarda bir kullanıcının belli sayıda işi almasını kontrol eder üstüne çıkartmaz altına kaldıkça yeni işi çekerbenim workerlar docker da çalışıyor, kullanıcılar çok olunca bir sürü container spawn etmek kötü olur gibi gelmişti ama, google cloud functionsa bakıyorum şimdi, (google cloud kullanmayı düşünüyorum, daha aşinayım) o gelmemişti aklıma, fiyatı mantıklı gelirse orda yaptırabilirim. hem http den işleri de verebilirim daha kolay olabilir
bu arada teşekkür ederim hocam
-
yolbulucu bunu yazdısandman bunu yazdı
Benim yazdıklarıma neden yorum yok ben saksı değilim :p
< ="//www.youtube.com//x9fxjKzCpME" width="560" height="314" allowfullscreen="allowfullscreen">
yazdığın şeyi biraz araştırıp öyle cevap vereyim dedim ondan :D
sandman bunu yazdıher kullanıcı için instance(worker) yaratıp yok etmek kabul edilen bir yöntemdir. Aws gibi yerlerde spot instancelar ile ucuzada çözebilirsin veya eventin tipine göre serverless'da kullanıp sonsuz büyüme elde edebilirsin.
başka bir pattern ise process monitor yazarsın workerlarda bir kullanıcının belli sayıda işi almasını kontrol eder üstüne çıkartmaz altına kaldıkça yeni işi çekerbenim workerlar docker da çalışıyor, kullanıcılar çok olunca bir sürü container spawn etmek kötü olur gibi gelmişti ama, google cloud functionsa bakıyorum şimdi, (google cloud kullanmayı düşünüyorum, daha aşinayım) o gelmemişti aklıma, fiyatı mantıklı gelirse orda yaptırabilirim. hem http den işleri de verebilirim daha kolay olabilir
bu arada teşekkür ederim hocam
Her zaman aklında olsun bu tür k8, swarm veya klasik vm'lerde autoscale'de bir üst limit belirleyebilirsin yani sonsuza kadar sistem kurmaz bir yere kadar büyürler. Benim önerim process monitor kurman ve onun hem işlere hem de kuyruğa bakıp ona göre işi içeri alması yönünde. Sen yine auto-scale'i yap çok iş gelince müşteriyi bekletmemek adına ama dediğimi yaparsan yarın öbür gün adamı attığı iş ve çalıştığı süreye görede faturalandırırsın.
Elimde SaaS mimarisi hakkında Amazon'nun iç teknik dokümanları olacak sokuşturduğum yeri bulursam vereyim.
-
sandman bunu yazdıyolbulucu bunu yazdısandman bunu yazdı
Benim yazdıklarıma neden yorum yok ben saksı değilim :p
< ="//www.youtube.com//x9fxjKzCpME" width="560" height="314" allowfullscreen="allowfullscreen">
yazdığın şeyi biraz araştırıp öyle cevap vereyim dedim ondan :D
sandman bunu yazdıher kullanıcı için instance(worker) yaratıp yok etmek kabul edilen bir yöntemdir. Aws gibi yerlerde spot instancelar ile ucuzada çözebilirsin veya eventin tipine göre serverless'da kullanıp sonsuz büyüme elde edebilirsin.
başka bir pattern ise process monitor yazarsın workerlarda bir kullanıcının belli sayıda işi almasını kontrol eder üstüne çıkartmaz altına kaldıkça yeni işi çekerbenim workerlar docker da çalışıyor, kullanıcılar çok olunca bir sürü container spawn etmek kötü olur gibi gelmişti ama, google cloud functionsa bakıyorum şimdi, (google cloud kullanmayı düşünüyorum, daha aşinayım) o gelmemişti aklıma, fiyatı mantıklı gelirse orda yaptırabilirim. hem http den işleri de verebilirim daha kolay olabilir
bu arada teşekkür ederim hocam
Her zaman aklında olsun bu tür k8, swarm veya klasik vm'lerde autoscale'de bir üst limit belirleyebilirsin yani sonsuza kadar sistem kurmaz bir yere kadar büyürler. Benim önerim process monitor kurman ve onun hem işlere hem de kuyruğa bakıp ona göre işi içeri alması yönünde. Sen yine auto-scale'i yap çok iş gelince müşteriyi bekletmemek adına ama dediğimi yaparsan yarın öbür gün adamı attığı iş ve çalıştığı süreye görede faturalandırırsın.
Elimde SaaS mimarisi hakkında Amazon'nun iç teknik dokümanları olacak sokuşturduğum yeri bulursam vereyim.
autoscale e üst limit belirlesem de yine de bir kullanıcının üstüste işler girip queu yu meşgul etmesi sorununu çözmüyor sanırım, dediğin gibi bir process monitöre ihtiyacım var, ona bakınacağım biraz.