محمد برنامهنویسی است که برای سرعت اجرای نرمافزار اهمیت ویژهای قائل است. برای همین منظور او پیشنهاد داده که ذخیرهسازی اطلاعات مربوط به هدر 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
را ببینیم.
ارسال پاسخ برای این سؤال