Konuyu Açan
#0
FastAPI, yüksek performanslı web uygulamaları geliştirmek için kullanılan modern bir framework’tür. Bu yazıda, FastAPI ve Process Manager (PM) kullanarak bir kripto fiyat takip botunu nasıl sürekli çalıştırabileceğimizi ve bellek sızıntılarını nasıl yönetebileceğimizi ele alacağız.
İlk olarak, FastAPI ile basit bir kripto fiyat takip botu oluşturmak için gerekli kütüphaneleri yükleyelim:
Botumuz, bir API üzerinden kripto paraların fiyat bilgilerini alacak ve bu verileri döngüsel olarak güncelleyerek saklayacak. İşte basit bir örnek:
Bu kod parçası, belirli bir kripto para biriminin USD cinsinden fiyatını döndüren basit bir API oluşturur. Ancak, sürekli çalıştırma sırasında bellek sızıntıları ile karşılaşabiliriz. Bunun nedeni genellikle uzun süreli çalışan işlemler veya yanlış yönetilen kaynaklardır.
PM (Process Manager) kullanarak uygulamanızı daha kararlı bir şekilde çalıştırmak için
PM2, uygulamanızı sürekli olarak izler ve herhangi bir çökme durumunda otomatik olarak yeniden başlatır. Bu, bellek sızıntılarının etkisini büyük ölçüde azaltır.
Son olarak, bellek sızıntılarını önlemek için kodunuzu düzenli olarak gözden geçirmeniz ve gereksiz nesneleri serbest bırakmanız önemlidir. Python'un
Bu yaklaşım, kripto fiyat takip botunuzun uzun süreli çalışmasını sağlarken, performansını da koruyacaktır. Uygulamanızda bellek yönetimi nasıl bir rol oynuyor?
İlk olarak, FastAPI ile basit bir kripto fiyat takip botu oluşturmak için gerekli kütüphaneleri yükleyelim:
CODE
1pip install fastapi uvicorn requestsBotumuz, bir API üzerinden kripto paraların fiyat bilgilerini alacak ve bu verileri döngüsel olarak güncelleyerek saklayacak. İşte basit bir örnek:
CODE
123456789from fastapi import FastAPI
import requests
app = FastAPI()
@app.get("/price/{currency}")
async def get_price(currency: str):
response = requests.get(f"https://api.coingecko.com/api/v3/simple/price?ids={currency}&vs_currencies=usd")
return response.json()Bu kod parçası, belirli bir kripto para biriminin USD cinsinden fiyatını döndüren basit bir API oluşturur. Ancak, sürekli çalıştırma sırasında bellek sızıntıları ile karşılaşabiliriz. Bunun nedeni genellikle uzun süreli çalışan işlemler veya yanlış yönetilen kaynaklardır.
PM (Process Manager) kullanarak uygulamanızı daha kararlı bir şekilde çalıştırmak için
pm2 veya supervisor gibi araçları tercih edebilirsiniz. Aşağıda pm2 ile uygulamanızı çalıştırmanın adımlarını görebilirsiniz:- PM2’yi global olarak yükleyin:
CODE
1npm install pm2 -g- Uygulamayı başlatın:
CODE
1pm2 start uvicorn myapp:app --host 0.0.0.0 --port 8000 --reloadPM2, uygulamanızı sürekli olarak izler ve herhangi bir çökme durumunda otomatik olarak yeniden başlatır. Bu, bellek sızıntılarının etkisini büyük ölçüde azaltır.
Son olarak, bellek sızıntılarını önlemek için kodunuzu düzenli olarak gözden geçirmeniz ve gereksiz nesneleri serbest bırakmanız önemlidir. Python'un
gc modülünü kullanarak kullanılmayan nesneleri temizleyebilirsiniz.Bu yaklaşım, kripto fiyat takip botunuzun uzun süreli çalışmasını sağlarken, performansını da koruyacaktır. Uygulamanızda bellek yönetimi nasıl bir rol oynuyor?