Найдено 48 результатов

voodooism
2019.09.21, 15:30
Форум: Общие вопросы (Yii 2.x)
Тема: Как лучше решить проблему конкурентного доступа в данном случае?
Ответы: 7
Просмотры: 559

Re: Как лучше решить проблему конкурентного доступа в данном случае?

Понимание процесса мне конечно открылось лучше, но мой кейс это всёравно не решает. Что я имею на данный момент: Первая транзакция ( стартует первее ): BEGIN; SELECT * FROM test WHERE busy = 0 LIMIT 1 FOR UPDATE; Результат : строка с ID = X; Вторая транзакция BEGIN; SELECT * FROM test WHERE busy = 0...
voodooism
2019.09.21, 14:14
Форум: Общие вопросы (Yii 2.x)
Тема: Как лучше решить проблему конкурентного доступа в данном случае?
Ответы: 7
Просмотры: 559

Re: Как лучше решить проблему конкурентного доступа в данном случае?

Для разных DBMS есть свои нюансы. Например, для MySQL с innoDB вы можете внутри транзакции выполнить SELECT * FROM actors WHERE busy != 0 LIMIT 1 FOR UPDATE; UPDATE actors SET busy = 1 WHERE id = 'ид вернувшийся в первом запросе' Для понимания уровней изоляции просто запустите две сессии и выполняй...
voodooism
2019.09.21, 10:41
Форум: Общие вопросы (Yii 2.x)
Тема: Как лучше решить проблему конкурентного доступа в данном случае?
Ответы: 7
Просмотры: 559

Re: Как лучше решить проблему конкурентного доступа в данном случае?

https://ru.wikipedia.org/wiki/%D0%A3%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C_%D0%B8%D0%B7%D0%BE%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%B8%D0%B9 https://www.yiiframework.com/doc/api/2.0/yii-db-transaction#begin()-detail...
voodooism
2019.09.20, 21:11
Форум: Общие вопросы (Yii 2.x)
Тема: Как лучше решить проблему конкурентного доступа в данном случае?
Ответы: 7
Просмотры: 559

Как лучше решить проблему конкурентного доступа в данном случае?

Есть сервис отправки сообщений пользователям. Суть его работы в том, что он достаёт из репозитория свободного актора, помечает его занятым, и создает событие отправки сообщения. Далее событие обрабатывается через yii2-queue. Проблема в том, что существует вероятность того что несколько разных клиент...
voodooism
2019.08.13, 14:31
Форум: Общие вопросы (Yii 2.x)
Тема: Тестовая конфигурация swiftmailer для отправки почты на заданные адреса
Ответы: 5
Просмотры: 588

Re: Тестовая конфигурация swiftmailer для отправки почты на заданные адреса

Ну это уже внутренняя логика. В мэйлерах могут быть разные конфигурации для теста и для прода. Например конфигурация транспорта.
voodooism
2019.08.13, 12:47
Форум: Общие вопросы (Yii 2.x)
Тема: Тестовая конфигурация swiftmailer для отправки почты на заданные адреса
Ответы: 5
Просмотры: 588

Re: Тестовая конфигурация swiftmailer для отправки почты на заданные адреса

Решил проблему на этапе настройки DI следующим образом: if (!YII_ENV_PROD) { $container->set(TestMessage::class, static function (Container $container, $params, $config) use ($app) { return new TestMessage($app->params['test_notifierTo'], $app->params['test_notifierCC'], $config); }); } $container->...
voodooism
2019.08.13, 08:31
Форум: Общие вопросы (Yii 2.x)
Тема: Тестовая конфигурация swiftmailer для отправки почты на заданные адреса
Ответы: 5
Просмотры: 588

Тестовая конфигурация swiftmailer для отправки почты на заданные адреса

В проекте есть функционал отправки почты. Нужно настроить мэйлер таким образом, что бы в случае если константа YII_ENV_PROD имеет ложное значение вся отправляемая почта перехватывалась и отправлялась на заданные в проекте адреса. В данный момент это реализовано через прослойку на этапе конфигурации ...
voodooism
2019.07.16, 17:02
Форум: Архитектура, дизайн, ООП
Тема: Проектирование сущностей, сервисов и репозиториев
Ответы: 108
Просмотры: 26876

Re: Проектирование сущностей, сервисов и репозиториев

Исходя из того что посоветовал samdark , пока что реализовал такое решение. Просьба оценить, на сколько вообще это номально смотрится? Задача: создать нужный тикет в зависимости от типа, и создать эвент. Реализация: Модель Ticket 'a: public static function createTicket(TicketDto $dto) { $ticketFacto...
voodooism
2019.07.16, 15:48
Форум: Архитектура, дизайн, ООП
Тема: Проектирование сущностей, сервисов и репозиториев
Ответы: 108
Просмотры: 26876

Re: Проектирование сущностей, сервисов и репозиториев

Что-то типа TicketHandlerFactory: class TicketHandlerFactory { public function createTicketHandler(string $type): TicketHandlerInterface { // } } Сами хендлеры распихиваем в отдельные реализации TicketHandlerInterface. Идея ясна, но как то не получается её вписать в те концепции о которых я тут узн...
voodooism
2019.07.16, 14:58
Форум: Архитектура, дизайн, ООП
Тема: Проектирование сущностей, сервисов и репозиториев
Ответы: 108
Просмотры: 26876

Re: Проектирование сущностей, сервисов и репозиториев

Столкнулся вот еще с одним интересным кейсом: У меня прилетают по API различные типы тикетов, все прилетает в один экшн контроллера. В зависимости от типа тикета, его должен обработать определенный метод в сервисе. Кто должен решить это? Контроллер, что то типа такого: switch ($ticketType) { case: T...
voodooism
2019.07.16, 10:36
Форум: Общие вопросы (Yii 2.x)
Тема: Как лучше реализовать огромную форму с кучей разных правил валидации?
Ответы: 3
Просмотры: 315

Re: Как лучше реализовать огромную форму с кучей разных правил валидации?

Вместо дропдауна сделайте отдельные ссылки на экшены с теми формами. Да, это достаточно просто и такой вариант плавает на поверхности. Можно, мне кажется, даже оставить дропдаун, просто слать по onCahnge запрос, и pjax-ом рендерить форму с нужными полями. Но идея в том, что форма всегда должна быть...
voodooism
2019.07.16, 09:55
Форум: Общие вопросы (Yii 2.x)
Тема: Как лучше реализовать огромную форму с кучей разных правил валидации?
Ответы: 3
Просмотры: 315

Как лучше реализовать огромную форму с кучей разных правил валидации?

Для начала опишу вводные: В системе имеется сущность тикета. Это одна из центральных сущностей бизнес-логики, соответственно имеет достаточно много полей и аггрегирует в себе несколько более маленьких сущностей. Тикеты приходят из разных источников по API, и от многих факторов зависит какие именно п...
voodooism
2019.07.15, 12:44
Форум: Архитектура, дизайн, ООП
Тема: Проектирование сущностей, сервисов и репозиториев
Ответы: 108
Просмотры: 26876

Re: Проектирование сущностей, сервисов и репозиториев

Дмитрий, я правильно понял, что в приведенном вашем примере Item - это и будет DTO в полях которого будут объекты коммуникаций?
Или же всё таки Item это сущность, которая в своих полях содержит непосредственно DTO отвечающие за разный виды коммуникаций?
voodooism
2019.07.15, 10:45
Форум: Архитектура, дизайн, ООП
Тема: Проектирование сущностей, сервисов и репозиториев
Ответы: 108
Просмотры: 26876

Re: Проектирование сущностей, сервисов и репозиториев

Вот перешел к практике и сразу столкнулся с первыми вопросами. Сначала кратко опишу вводные: Есть сущность тикета. По каждому тикету могут быть разные типы коммуникации с клиентом (sms, email, телефон, соцсети и т.д.). Для каждого типа коммуникации был создан отдельный репозиторий, с целью того что ...
voodooism
2019.07.14, 21:27
Форум: Архитектура, дизайн, ООП
Тема: Yii Queue (Очереди)
Ответы: 6
Просмотры: 2134

Re: Yii Queue (Очереди)

Жаль, что Дмитрий не ответил на этот вопрос. Надеюсь он(или кто либо другой) увидит что тема обновилось и напишет ответ :)
voodooism
2019.07.14, 18:38
Форум: Архитектура, дизайн, ООП
Тема: Проектирование сущностей, сервисов и репозиториев
Ответы: 108
Просмотры: 26876

Re: Проектирование сущностей, сервисов и репозиториев

Дмитрий, спасибо большое вам за этот цикл статей, еще не полностью изучил, но уже реально очень много нового узнал! У меня возник вопрос по поводу диспетчеризации: Если мы рассматриваем большое приложение с кучей сущностей и сервисов, я боюсь представить каким адом в итоге может оказаться система ра...
voodooism
2019.06.24, 11:49
Форум: Общие вопросы (Yii 2.x)
Тема: Как реализовать подгрузку данных приходящих по API
Ответы: 3
Просмотры: 447

Re: Как реализовать подгрузку данных приходящих по API

AJAX запрос по таймеру - первое о чём подумал, но решил что как то костыльно и должно быть какое то более изящное решение
А вот websocket в таком контексте не доводилось использовать. Однажды только писал простенький консольный чат на PHP в обучающих целях. Можно тут поподробнее?
voodooism
2019.06.24, 09:53
Форум: Общие вопросы (Yii 2.x)
Тема: Как реализовать подгрузку данных приходящих по API
Ответы: 3
Просмотры: 447

Как реализовать подгрузку данных приходящих по API

Есть проект полностью на YII2. В том числе в проекте реализован API. С помощью API сторонние сервисы создают тикеты в системе, к каждому тикету можнт быть прикреплено N файлов. Методы API устроены следующим образом - один запрос приходит в формате json - на создание тикета, а второй запрос в формате...
voodooism
2019.05.22, 09:03
Форум: Общие вопросы (Yii 2.x)
Тема: В чём разница между свойствами urlManager'a 'scriptUrl', 'baseUr' и 'hostInfo' ?
Ответы: 1
Просмотры: 361

В чём разница между свойствами urlManager'a 'scriptUrl', 'baseUr' и 'hostInfo' ?

Несколько раз прочитал документацию, но так и не смог понять в чём всё таки разница между этими параметрами.
Кто-нибудь может объяснить наглядно с примерами как это работает и в каких случаях я должен использовать какой параметр?
voodooism
2019.04.04, 14:55
Форум: Общие вопросы (Yii 2.x)
Тема: Входной скрипт /web/index.php отрабатывает дважды
Ответы: 4
Просмотры: 503

Re: Входной скрипт /web/index.php отрабатывает дважды

Как то раз столкнулся с функцией google chrome "предсказание адреса". Очень долго не мог понять почему у меня при одном обращении к серверу на самом деле летит два запроса. Оказалось что первый запрос из-за этой функции летит в момент набора url скрипта, и второй запрос кода я уже нажимаю enter.