محمد برنامهنویسی است که برای سرعت اجرای نرمافزار اهمیت ویژهای قائل است. برای همین منظور او پیشنهاد داده که ذخیرهسازی اطلاعات مربوط به هدر CLIENT-KEY
، در دیتابیس Redis
انجام شود. در نتیجه شما باید پاسخی که برای سوال دوم مسابقه ارسال کردهاید را به گونهای تغییر دهید که از Redis
برای خواندن و ذخیرهسازی اطلاعات استفاده کند.
برای دانلود پروژهی اولیه روی این لینک کلیک کنید.
کانتینرها
در ابتدای کار، برای پیاده سازی این سیستم، نیاز است که فایل docker-compose.yml
را تکمیل کنید. توجه کنید که امکان build کردن یک Image جدید را دارید. برای دیتابیس Redis
میتوانید از image زیر استفاده نمایید:
توجه داشته باشید که باید فایل docker-compose.yml
را به شکلی تکمیل کنید که پس از up
کردن آن، هر ۲ کانتینر (Api, Redis) به درستی اجرا شوند. سپس با توجه به درخواستهایی که از سمت سیستم داوری برای api
ارسال میشود، باید کلیدهای CLIENT-KEY
در دیتابیس Redis
ذخیره شده باشد. در غیر این صورت نمره کامل به شما تعلق نمیگیرد.
شرایط containerها
۱. نام containerها باید حتماً به شکل زیر باشد:
۲. هریک از این containerها باید روی پورت مشخصی که مربوط به آنها میباشد قرار گیرند. دقیقاً به شکل زیر:
دقت کنید که تنظیمات پورتها به گونهای انجام شود که وقتی سیستم داوری دستور docker-compose up
را اجرا کرد، بتواند به هر دو پورت ۸۰ و ۶۳۷۹ دسترسی داشته باشد.
۳. نام دیتابیس ردیس که ذخیره سازی باید در آن انجام شود، 0
است.
۴. هر کلید باید بصورت جداگانه در Redis
ذخیره شود. به این صورت که اگر n بار درخواست با هدر CLIENT-KEY=test
ارسال شد، دیتا باید به گونهای ذخیره شده باشد که اگر از Redis
کلید test
خوانده شود، مقدار n را برگرداند.
ایجاد Volume
در صورتیکه نیاز دارید فایل یا مسیری را به درون هریک از containerها Volume کنید، میتوانید از پوشهای به نام api
استفاده کنید.
فراموش نکنید که فایل somefile
را درون پوشهی api
قرارداده و آن را برای داوری ارسال نمایید. برای مثال، پوشهی ارسالی شما برای داوری کوئرا به شکل زیر میتواند باشد:
**توجه:** سیستم داوری کوئرا بهصورت خودکار فایل docker-compose.yml
را با کامند up
اجرا میکند. شما نیازی به کد یا اسکریپتی برای اجرای این کار ندارید.
نحوه ارسال پاسخ
شما فقط میتوانید مسیرهای هایلایت شده را تغییر دهید:
در نهایت این پوشه را zip کرده و ارسال کنید. توجه کنید که پس از extract کردن فایل zip شما، باید فایل docker-compose.yml
را ببینیم.
ارسال پاسخ برای این سؤال