• 02-05-2024, 02:38:20
    #1
    Merhaba arkadaşlar amacım mysql bağlantısı kurup saniyede 1 kere veri çekmek ancak bu veriyi çekerken ilk sorguda açılan mysql bağlantısını kapatmadan 2. 3. 4. vs. sorgularda yeniden bağlantı kurmadan var olan bağlantı ile daha hızlı sorgu yapmak istiyorum. Aşağıdaki kodta veritabanındaki bilgi değiştiğinde kodun çalıştığı andaki verileri gösteriyor.

    import asyncio
    import aiomysql
    import time
    
    async def main():
        async with aiomysql.connect(
            host="51.8.6.129 ",
            user="acmdan_acs",
            password="F0qfdxR6BcQ",
            db="acmdan_acs "
        ) as connection:
            while True:
                start_time = time.time()
    
                # Veritabanı bağlantısını oluştur
    
                
                async with connection.cursor() as cursor:
                    # SQL sorgusunu hazırla
                    sql = "SELECT ons, isim FROM bilgi"
            
                    # SQL sorgusunu çalıştır
                    await cursor.execute(sql)
            
                    # Sonuçları al
                    results = await cursor.fetchall()
            
                    # Sonuçları yazdır
                    for row in results:
                        ons = row[0]
                        isim = row[1]
                        print(f"Ağırlık: {ons}, İsim: {isim}")
            
    
                await asyncio.sleep(1)
                end_time = time.time()
                elapsed_time = end_time - start_time
                print(f"İşlem süresi: {elapsed_time} saniye")            
            # Her saniyede bir tekrarla
    
    asyncio.run(main())
    pymysql kullandım sonuç yine aynı. Nerede hata yapıyorum yardımcı olabilir misiniz?
  • 02-05-2024, 02:44:52
    #2
    Sanırım sorunu anladım. burada sonuç önbelleğe alınıyor. Bunu sunucu tarafında mı halletmeliyim yoksa bot tarafında mı?
  • 02-05-2024, 02:50:08
    #3
    Eğer sürekli aynı yapılarda sorgular atıyorsanız, size daha farklı önerim olabilir.
    küçük bir mikro servis yazın (örnek flask) ve MySql ile sürekli bağlı kalsın. Bu sayede çok daha hızlı sorgu atabilirsiniz ve daha az ram + ve cpu kullanırsınız.
  • 02-05-2024, 02:52:15
    #4
    osawashere adlı üyeden alıntı: mesajı görüntüle
    Eğer sürekli aynı yapılarda sorgular atıyorsanız, size daha farklı önerim olabilir.
    küçük bir mikro servis yazın (örnek flask) ve MySql ile sürekli bağlı kalsın. Bu sayede çok daha hızlı sorgu atabilirsiniz ve daha az ram + ve cpu kullanırsınız.
    teşekkür ederim. hemen araştırıyorum.
  • 02-05-2024, 02:54:22
    #5
    eğer veri sürekli değişmiyorsa değişkende vs tutman daha iyi olur sürekli db yi aç kapa et değişiklik olduğun da yapıyı ona göre ayarlarsan daha seri ve daha rahat edersin Bence tabi kodun tamamını bilmediğim için nerede ne için kullandığını ama değişkene listeye vs atarsan çok rahat edeibilirsin.
  • 02-05-2024, 02:57:19
    #6
    Rica ederim,
    fikir vermesi açısından aşağıdaki linke bakabilirsiniz.
    https://medium.com/@connect.hashbloc...e-446f08722057

    mehmetemin72 adlı üyeden alıntı: mesajı görüntüle
    teşekkür ederim. hemen araştırıyorum.
  • 02-05-2024, 03:27:45
    #7
    Melihhh adlı üyeden alıntı: mesajı görüntüle
    eğer veri sürekli değişmiyorsa değişkende vs tutman daha iyi olur sürekli db yi aç kapa et değişiklik olduğun da yapıyı ona göre ayarlarsan daha seri ve daha rahat edersin Bence tabi kodun tamamını bilmediğim için nerede ne için kullandığını ama değişkene listeye vs atarsan çok rahat edeibilirsin.
    veri saniyelikte değişebiliyor 2 3 dakikada birde değişebiliyor. Benimde bunu saniyelik kontrol etmem gerekiyor. kodun kalan kısmı excele kayıt ve bildirim gönderme.

    osawashere adlı üyeden alıntı: mesajı görüntüle
    Rica ederim,
    fikir vermesi açısından aşağıdaki linke bakabilirsiniz.
    https://medium.com/@connect.hashbloc...e-446f08722057
    bende buraya bakıyordum. İlgilendiğiniz için teşekkür ederim. arkadaşlar.
  • 02-05-2024, 03:48:12
    #8
    öncelikle sunucu bilgilerini kaldır istersen şimdi gördüm
    DB ye gelen datayı sen yazıyorsan excele aktarmadan önce orada yakalayabilirsin demek istediğim sorgu atmana gerek kalmaz
    onun doşında yapabileceğin while üstüne kurcorsu alırsın sürekli sorgunu attıyorırsın time sleep 1 koyarsın ama bu kadar önemliyse hız rowları da orada yaptırmaman lazım onları haric bir liste de tutup threading yazdırabilirsin birbirinden bağımsız.
  • 02-05-2024, 04:01:10
    #9
    Melihhh adlı üyeden alıntı: mesajı görüntüle
    öncelikle sunucu bilgilerini kaldır istersen şimdi gördüm
    DB ye gelen datayı sen yazıyorsan excele aktarmadan önce orada yakalayabilirsin demek istediğim sorgu atmana gerek kalmaz
    onun doşında yapabileceğin while üstüne kurcorsu alırsın sürekli sorgunu attıyorırsın time sleep 1 koyarsın ama bu kadar önemliyse hız rowları da orada yaptırmaman lazım onları haric bir liste de tutup threading yazdırabilirsin birbirinden bağımsız.
    Hocam veriyi yazan başka sunucuda yada bilgisayarda bir bot. socket ile veriyi göndermeye çalıştım ama yapamadım. Aklıma veritabanı geldi. Sizin önerebileceğiniz 2 sunucu arasında hızlı bir şekilde veriyi python ile taşıyabileceğim bir yöntem varsa yazarsanız memnuniyet duyarım.