TGViewer
DevTwitter | توییت برنامه نویسی DevTwitter | توییت برنامه نویسی @devtwitter · 32.5K subscribers
Post #13503 3.49K
داکر قرار بود مشکل معروفِ «روی سیستم من کار می‌کنه!» رو حل کنه؛
اما این بار داستان برعکس شد!
چند روز پیش می‌خواستم نسخه جدید برنامه‌ای که نوشته بودیم رو روی Docker راه‌اندازی کنم که با یک مشکل عجیب مواجه شدیم!
برنامه روی دو سیستم مختلف بدون هیچ مشکلی اجرا می‌شد؛
ولی وقتی همون برنامه رو داخل Docker اجرا کردیم، همه‌چیز به هم ریخت.
اول log شروع برنامه مدام تکرار می‌شد.
بعد RAM کم‌کم پر شد.
سرور Restart شد.
کانتینر دوباره بالا اومد…
و دوباره همون اتفاق تکرار شد!
کد تغییر نکرده بود.
سرور هم همون سرور بود.
تنها چیزی که تغییر کرده بود، نحوه‌ی بسته‌بندی و اجرای برنامه بود.
بعد از بررسی مشخص شد مشکل از ترکیب: Python multiprocessing + spawn + اجرای برنامه به‌صورت executable بود.
وقتی از spawn استفاده می‌کنید، هر Process جدید، برنامه رو از ابتدا اجرا می‌کنه.
در یک Python Script معمولی، این رفتار قابل مدیریته؛ اما وقتی برنامه به‌صورت frozen/executable اجرا می‌شه، اگه نقطه‌ی ورود Processها درست مدیریت نشده باشه، هر Worker ممکنه دوباره کل برنامه رو اجرا کنه.
یعنی چیزی شبیه این:
Process → Process → Process → RAM → Restart
و بعد دوباره از اول!
راه‌حل؟
جواب فقط یک خط کد است:
multiprocessing.freeze_support()
این تجربه یک نکته‌ی مهم برای من داشت
داکر تفاوت‌های محیط اجرا رو کمتر می‌کنه، اما تفاوت‌های مربوط به نحوه‌ی بسته‌بندی و اجرای کد رو از بین نمی‌بره.
پس اگه برنامه‌ای به‌صورت Python Script درست کار می‌کنه ولی بعد از تبدیل شدن به Binary یا اجرای داخل Docker رفتار عجیبی داره، فقط سراغ Docker و تنظیمات سرور نرید؛
نحوه‌ی ایجاد Processها و نقطه‌ی شروع برنامه رو هم بررسی کنید.
گاهی مشکل یک معماری پیچیده نیست…
بلکه فقط یک خط کده که داره RAM سرور رو به آتش می‌کشه.

@DevTwitter | <Sara Sabaghan/>
  • 👍 26
  • ❤ 11
  • 👎 4
More from @devtwitter
  1. Oct 10, 2026Post #13509
  2. Oct 10, 2026&rlm;shodan-lua شودان یکی محبوب ترین موتور های جستجو برای دستگاه های هست که در سراسر جهان…
  3. Oct 10, 2026دوره جامع پایتون: مقدماتی تا پیشرفته 🗓شروع دوره: 18 مهر 🎁 تخفیف ویژه برای دانشجویان، فرص…
  4. Oct 10, 2026وقتی با هوش مصنوعی دارید ظاهر سایت یا اپتون رو می‌سازید، حتی اگر تسک رو کامل توضیح داده با…
  5. Oct 10, 2026💳 💳 نقد درآمد ارزی، شارژ ویزا و مسترکارت با تاسیانت ◀️ نقد درآمد ارزی از PayPal، Upwork،…
  6. Oct 10, 2026اوپن سورس هم دنیای خودش رو داره چند ماه پیش یک پکیج NPM به اسم iran-map-simple برای React…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →