• 09-12-2012, 18:49:06
    #1
    Üyeliği durduruldu
    Merhaba ben toplu mail yollatmaya çalışıyorum ama mail yollarken mailler hem yavaş gidiyor hemde mail yollarken program yanıt vermiyor sanırım başka programlarda yanır vermeme sorunu olmuyormuş bu sorunu nasıl çözebilirim

    hız sorununa gelirsek for döngüsünede bağlasam aynı anda 5 tane fonksiyonda çalıştırsam birim zaman 1 saniyeye düşen mail 1.4 yardımlarınızı bekliyorum şimdiden Teşekkürler
  • 09-12-2012, 22:12:43
    #2
    eğer .net ile yazıyorsan thread veya background worker araştır. donma sorununu çözecektir...
  • 09-12-2012, 23:33:26
    #3
    Kullandığınız mail server nedir kimdir nerenindir?

    Benim kendi yazdıgım var fakat özel bir programdır sorunları yoktur.
  • 10-12-2012, 06:53:34
    #4
    Üyeliği durduruldu
    program kendi tanımlanan smtpleri kulanıyor özelde olabiliyor gmailde

    backworker donma sorununu çözdü tek sıkıntımız yavaşlama sıkıntısı 3 5 tane backworker işlemi versem durum değişirmi yada olurmu
  • 10-12-2012, 08:54:06
    #5
    Üyeliği durduruldu
    kaynak kodunu görmem mümkünmü
  • 10-12-2012, 09:34:29
    #6
    yahu bende mailler gitmiyor anlamısım ya o kadar seri iş yaparken sana nasıl cevap versin program elbetteki yanıt vermiyor der gerekli ayarını vermezsen.. C++Builder de Application->ProcessMessages isimli bir fonk var bu fonk cok yogun islemler sırasında dahi programın cevap vermesini saglıyor ,yanıt vermiyor olmuyor yani. Yazdıgınız programlama dilinde de buna benzer birşey mutlaka vardır biraz araştırın..O stmplere o kadar yuklenmeyin eğer mail server değilse yoksa server ip banlanır cogu mail hizmeti tarafından hatta blackliste girer debelenip durursunuz ondan sonra. Her mail arasına belirli bir süre ekleyin
  • 10-12-2012, 09:46:24
    #7
    Background worker veya aşağıdaki gibi mail işlemini ThreadPool Kuyruğuna eklersen program sorunsuz çalışır.
     System.Threading.ThreadPool.QueueUserWorkItem(
                   new System.Threading.WaitCallback(delegate(object parametreler)
               {
                   if ((exception != null) && (exception is System.Threading.ThreadAbortException))
                       return;
    //Bu arada mail gönderme işlemleri yaptırtırsın.
     }), new object[] { parametreler });
  • 10-12-2012, 10:00:42
    #8
    Üyeliği durduruldu
    hocam kasma kilitlenme sorununu çözdüm demiştim neyse tek sorunum hız
  • 14-12-2012, 08:52:31
    #9
    Eğer Real Hız istiyorsan bu biraz zor çünkü
    Mail Request time ve Mail Response time aralığı sana veya senin programına bağlı değildir.
    mail sunucuna ve o anki net hızına vs.
    Ama şöyle bir durum var Eğer sen diyorsan ki mail sunucumun down olma ihtimali %0.000001
    O zaman Mail listesini yukarda verdiğim örnekteki gibi thread kuyruguna eklersin

    burası önemli !
    Thread e verilen işlem bittiğinde değil! Thread kuyruğuna eklendiği anda bir atomic olarak bir değişkeni artırıp o dğeişkeni kullanıcıya yansıtırsan Kullanıcı çok hızlı bir şekilde
    maillerin gittiğini düşünür.
    Tabiki göndermek işlemi bitmemiştir ve arka planda mailler kuyruğa göre gönderilmeye devam ediyor olacaktır.
    Bu sırada kullanıcı yeni bir liste eklerse bunu da yine atomic olarak daha önce tanımladığın listeye eklersin.
    Thread-Safe çalışmaya dikkat et.
    Kolay gele.