My one function do fetch a image's url form internet and saves in the ssd and do some editing using the pillow.
See When i will do code in fastapi's web dev should i try to write in async way, but here pillow is not allow to write async code, so what will the way, will i make simple def sync_fun() and time of call this function will i call it via asyncio.to_thread(sync_fun) will it fully ok to use like this in fastapi web app?
ThreadMy one function do fetch a image's url form internet and saves in the ssd and do some editing using the pillow.
9 Nachrichten · –R N def get_collection(): myclient = pymongo.MongoClient("mongodb://localhost:27017/") mycol = myclient["mydatabase"]["customers"] mydoc = mycol.find().sort("name") return mydoc mycol = get_collection() See if i keep this logic of search a user and keep this in a function and use with my PTB library ot fastapi to get data of a telegram user so at that moment i call this connection to fetch the data and it take 500ms so for this 500 ms my Python tg bot will not respond to anyone so this time i will call this on asyncio.to_thread(get_collection()) so what should i do? is to_thread is ok here?R N As of May 14, 2025, Motor is deprecated in favor of the GA release of the PyMongo Async API in the PyMongo library i think i should to use, from pymongo import AsyncMongoClient or maybe, Beanie - is an asynchronous Python object-document mapper (ODM) for MongoDB. Data models are based on Pydantic. But i am Using PTB repo there is i am using pydantic models but not fastapi directly, so there now what will my tool. As You say not to use asyncio.to_thread(sync_mongo_fun...), so which i will use now ?R No, to_thread should be used as a last resort (and when you know what you are doing) Use whatever you like, just do not use to_thread() if you have other (better) options. And learn the diffrences of async code vs using threads vs using proccesses. You cannot work with those until you understand what those are.
𝑂