Skip to content

VitalyLitvinov74/kma.test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание для Kma.biz

Образец докер композ взял из своей сборки: https://github.com/VitalyLitvinov74/yii2-docker-xdebug

Инструкция по запуску

  1. Предварительно установите Docker desctop.
  2. Создайте файл .env на основе .env.example (можно просто убрать .example вконце).
  3. в .env измените значение переменной BACKEND на удобное вам.
    • Это наименование домена, на котором вы сможете запустить сайт.
  4. Зайдите в ваш файл hosts (C:\Windows\System32\drivers\etc) и добавьте туда доменные имена, например, у меня так:
127.0.0.1 kma.test
  1. Проверьте чтобы PORT, MYSQL_PORT, ADMINER_PORT не были заняты другими приложениями. в противном случае измените на свои.
  2. В консоли перейдите в папку docker и выполните
docker-compose up -d
  1. доступ к апи можно осущиствить через постман (все запросы уже настроены). https://www.postman.com/solar-robot-131180/workspace/test/folder/2231425-e02947f8-1659-4623-a5db-100d7864a658

  2. чтобы запустить прослушивание очереди, зайдите в контейнер пхп, у меня это

docker exec -it php-kma.test bash

и выполните php yii queue/watch

К сожалению у меня не было времени настроить нормальный воркер (демон) для пхп, для работы с очередями.

Пояснения к работе

  • Задержка в 30 секунд которая была указана в тз была сделана с помощью sleep(30) - другого варианта не нашел.

  • В основном люблю использовать декоработы и в контроллере очередей я показал как ими можно очень быстро модифицировать сам алгоритм работы без ушерба понимания того как работает код (основной смысл инкапсуляции).

  • Важно понимать если URL не существует то curl выкинет исключение. следовательно такой адрес не будет добавлен в очередь повторно, и не будет добавлен в бд.

  • Можно создать отдельную таблицу для таких адресов, чтобы иметь ввиду что работает а что нет.

  • Для Ускорения поиска по заголовкам я добавил индекс, и переместил сссами заголоки в одтельную таблицу. Конечно, можно было бы еще и переместить "контент" в другую таблицу т.к. значение этой колонки большое, и со временем может случиться зависание.

About

Тестовое задание для kma

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published