mahdi shirinabadi
mahdi shirinabadi
خواندن ۱ دقیقه·۲ ماه پیش

مشکل هم زمانی Jobها در سیستم های توزیع شده (Distributed) قسمت اول

سلام، خیلی وقتها ما نیاز داریم تا کارهایی رو به صورت خودکار انجام بدیم و برای همین نیاز داریم تا یک job برای ان تعریف کنیم، مثلا ما سیستم خرید انتقال وجه مینویسیم و بعضی از تراکنشهای ما امکان داره که از سرور ارایه دهنده TimeOut بشه (مثلا شبکه دچار اشکال بشه یا مشکل فایروال داشته باشه و ....) در این حالت تراکنش ما به حالت suspend میره و ما باید یک سیستم خودکار تهیه کنیم تا به صورت مرتبط تا زمان تعیین تکلیف تراکنش وضعیت تراکنش رو استعلام کنه. برای همین یک مثال واقعی در دنیای برنامه نویسی رو با هم مینویسیم.

1- سناریو: ما یک سامانه انتقال وجه داریم که اطلاعات کارت مبدا (شماره کارت - CVV2- تاریخ انقضا - رمز یکبار مصرف)، مبلغ مورد نظر و شماره کارت مقصد رو میگریم و سرویس انتقال وجه رو از شرکت ارایه دهنده سرویس (بانک) فراخوانی میکنیم، در صورتی که همه چیزی خوب باشد ما سرویس رو فراخوانی میکنیم و پول از حساب مبدا کم و به حساب مقصد واریز میشه و ما نتیجه رو در جواب سرویس میگیریم (خیلیم خوب) حالا فرض کنید

ما سرویس رو فراخوانی کردیم ولی هیچ جوابی نگرفتیم حالا باید چیکار کنیم و از کجا مطمین بشیم که الان وضعیت تراکنش چیه؟؟؟؟

راه حل: در این حالت ما باید تراکنش رو به وضعیت suspend بروزرسانی کنیم و یک سرویس خودکار بنویسیم که هر چند وقت یکبار برود و این تراکنشها رو استعلام کند و بر اساس نتیجه استعلام وضعیت تراکنش رو نهایی کنیم (یا انجام شده یا نشده)

بریم برای کد نویسی:

تو قسمت دوم میریم برای کد نویسی

تراکنش
کسی که خودش رو سنیور نمیدونه ولی بقیه میدونن!
شاید از این پست‌ها خوشتان بیاید