event loop
سازوکاری برای هماهنگکردن اجرای کارهای async و رسیدگی به رویدادهای آماده.
توضیح
event loop کارهای آماده را اجرا میکند؛ وقتی کاری برای پاسخ شبکه یا پایان یک timer منتظر میماند و کنترل را پس میدهد، کارهای دیگر فرصت اجرا پیدا میکنند. با آمادهشدن نتیجه، ادامهٔ کار برای اجرا زمانبندی میشود. این سازوکار لزوماً به معنی parallelism نیست؛ اگر کاری طولانی اجرا شود و کنترل را پس ندهد، رسیدگی به کارهای دیگر عقب میافتد.
مثال
import asyncio
async def task(name):
print(name, "start")
await asyncio.sleep(1)
print(name, "done")
async def main():
await asyncio.gather(task("A"), task("B"))
asyncio.run(main())چرا مهم است
در برنامههای async، از server تا رابط کاربری، با event loop روبهرو میشوی. شناخت آن کمک میکند بفهمی چرا یک کار سنگین یا فراخوانی blocking میتواند پاسخگویی برنامه را کند کند.
مفهومهای مرتبط
این کارت را هوش مصنوعی نوشته و دو بار با هوش مصنوعی بررسی شده است.
مطالبی با این مفهوم
- Polar Proxy
Polar Proxy؛ استفادهٔ دوباره از connection با تطبیق دقیق و کاهش کار تکراری
Polar Proxy برای readها، مالکیت connectionها را در یک pool مرکزی نگه میدارد. تطبیق دقیق، cache محلی worker و انتخاب server با P2C، بخشهای اصلی طراحی شرحدادهشدهاند.
- n8n
انتشار نسخه 2.47.0 از n8n با بهبودهای متعدد
نسخه 2.47.0 از n8n با رفع bugها و بهبودهای متعددی منتشر شد. این بهروزرسانی شامل تغییرات در agentها و بهبودهایی در API و core است.
- Chameleon

معرفی chameleon-rs؛ بازنویسی Chameleon با Rust برای Python مدرن
Michael Kennedy از chameleon-rs رونمایی کرده؛ پیادهسازی Chameleon با Rust که سازگاری با templateهای موجود را با async rendering، پشتیبانی از free-threaded Python و قابلیتهای تازه ترکیب میکند.