محمد برنامهنویسی است که برای سرعت اجرای نرمافزار اهمیت ویژهای قائل است. برای همین منظور او پیشنهاد داده که ذخیرهسازی اطلاعات مربوط به هدر CLIENT-KEY، در دیتابیس Redis انجام شود. در نتیجه شما باید پاسخی که برای سوال دوم مسابقه ارسال کردهاید را به گونهای تغییر دهید که از Redis برای خواندن و ذخیرهسازی اطلاعات استفاده کند.
برای دانلود پروژهی اولیه روی این لینک کلیک کنید.
کانتینرها
در ابتدای کار، برای پیاده سازی این سیستم، نیاز است که فایل docker-compose.yml را تکمیل کنید. توجه کنید که امکان build کردن یک Image جدید را دارید. برای دیتابیس Redis میتوانید از image زیر استفاده نمایید:
registry.gitlab.com/qio/standard/redis:latest
توجه داشته باشید که باید فایل docker-compose.yml را به شکلی تکمیل کنید که پس از up کردن آن، هر ۲ کانتینر (Api, Redis) به درستی اجرا شوند. سپس با توجه به درخواستهایی که از سمت سیستم داوری برای api ارسال میشود، باید کلیدهای CLIENT-KEY در دیتابیس Redis ذخیره شده باشد. در غیر این صورت نمره کامل به شما تعلق نمیگیرد.
شرایط containerها
۱. نام containerها باید حتماً به شکل زیر باشد:
api
redis
۲. هریک از این containerها باید روی پورت مشخصی که مربوط به آنها میباشد قرار گیرند. دقیقاً به شکل زیر:
port of api = 80
port of redis = 6379
دقت کنید که تنظیمات پورتها به گونهای انجام شود که وقتی سیستم داوری دستور docker-compose up را اجرا کرد، بتواند به هر دو پورت ۸۰ و ۶۳۷۹ دسترسی داشته باشد.
۳. نام دیتابیس ردیس که ذخیره سازی باید در آن انجام شود، 0 است.
۴. هر کلید باید بصورت جداگانه در Redis ذخیره شود. به این صورت که اگر n بار درخواست با هدر CLIENT-KEY=test ارسال شد، دیتا باید به گونهای ذخیره شده باشد که اگر از Redis کلید test خوانده شود، مقدار n را برگرداند.
ایجاد Volume
در صورتیکه نیاز دارید فایل یا مسیری را به درون هریک از containerها Volume کنید، میتوانید از پوشهای به نام api استفاده کنید.
services:
sample_container:
build: ./api
volumes:
- ./api/somefile:/somefile
فراموش نکنید که فایل somefile را درون پوشهی api قرارداده و آن را برای داوری ارسال نمایید. برای مثال، پوشهی ارسالی شما برای داوری کوئرا به شکل زیر میتواند باشد:
.
├── api
│ └── somefile
└── docker-compose.yml
**توجه:** سیستم داوری کوئرا بهصورت خودکار فایل docker-compose.yml را با کامند up اجرا میکند. شما نیازی به کد یا اسکریپتی برای اجرای این کار ندارید.
نحوه ارسال پاسخ
شما فقط میتوانید مسیرهای هایلایت شده را تغییر دهید:
.
├── api
│ └── ...
└── docker-compose.yml
در نهایت این پوشه را zip کرده و ارسال کنید. توجه کنید که پس از extract کردن فایل zip شما، باید فایل docker-compose.yml را ببینیم.
ارسال پاسخ برای این سؤال