Gopher Academy
3.85K subscribers
932 photos
42 videos
280 files
2.19K links
🕸 Gopher Academy

🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
Durable Background Execution with Go and SQLite

🟢 خلاصه مقاله:
این مقاله نشان می‌دهد چگونه می‌توان با ترکیب Go و SQLite یک سیستم اجرای پس‌زمینه‌ای ساخت که در برابر کرش و راه‌اندازی مجدد مقاوم است، بدون نیاز به سرویس‌های خارجی. الگوی اصلی شامل صف کاری مبتنی بر SQLite با ستون‌هایی برای وضعیت، شمارش تلاش‌ها و زمان اجاره (lease) است؛ کارگرها کار را در تراکنش می‌گیرند، با زمان اجاره کوتاه اجرا می‌کنند، و نتیجه را ثبت می‌کنند تا در صورت کرش، کار دوباره قابل بازیابی باشد. با فعال‌سازی WAL، شاخص‌گذاری درست، backoff نمایی و الزام به idempotency، معمولاً به تضمین at-least-once می‌رسیم. کنترل همزمانی با worker pool، خاموش‌سازی تمیز با سیگنال‌ها و context، و رصد شاخص‌هایی مانند نرخ خطا و زمان پردازش از ملزومات عملیاتی است. برای آزمودن این رفتارها، استفاده از Subtest Grouping in Go (با ایده‌هایی از Dima Kotik و Redowan Delowar) کمک می‌کند سناریوها به‌صورت گروهی، خوانا و قابل موازی‌سازی بررسی شوند.

#Go #SQLite #BackgroundJobs #Durability #GoTesting #Subtests #Concurrency #SoftwareDesign

🟣لینک مقاله:
https://golangweekly.com/link/175982/web


👑 @gopher_academy
👍1
🔵 عنوان مقاله
go-sqlite3: Go Bindings to SQLite Using Wazero

🟢 خلاصه مقاله:
این کتابخانه با نام go-sqlite3 امکان استفاده از SQLite در Go را بدون cgo فراهم می‌کند. هسته SQLite به‌صورت WebAssembly اجرا و درون runtimeِ wazero بارگذاری می‌شود، در حالی‌که رابطی سازگار با database/sql ارائه می‌دهد. نتیجه این است که بیشتر کدهای موجود مبتنی بر database/sql با کمترین تغییر کار می‌کنند و در عوض، مزایایی مثل باینری‌های کاملاً استاتیک، کراس‌کامپایل آسان، وابستگی‌های کمتر به سیستم‌عامل و استقرار ساده‌تر (به‌ویژه در کانتینر و Serverless) به دست می‌آید. اجرای SQLite داخل WebAssembly علاوه‌بر یک محیط ایزوله و قابل پیش‌بینی، ممکن است محدودیت‌هایی هم داشته باشد؛ از جمله عدم پشتیبانی برخی افزونه‌های بومی و کارایی پایین‌تر نسبت به نسخه‌های cgo. با این حال برای بسیاری از کاربردها مانند ابزارهای خط فرمان، سرویس‌های سبک، تست‌ها و محیط‌های ابری، این مبادله به‌خاطر قابل‌حمل بودن و سادگی عملیاتی ارزشمند است.

#Go #SQLite #WebAssembly #wazero #database_sql #cgo #GoBindings #Serverless

🟣لینک مقاله:
https://golangweekly.com/link/176633/web


👑 @gopher_academy
1👍1