
Алекс
16.03.2018
15:02:16
Сам дропайся, тролей тут прикормили и жалуетесь когда нормально отвечают на идиотские шуточки

Sergey
16.03.2018
15:02:43

Алекс
16.03.2018
15:03:02
тема закрыта

Vladislav
16.03.2018
15:04:56

Google

Алекс
16.03.2018
15:05:21
ок

Alan
16.03.2018
15:12:59
а заморачиваетесь в проде с докером и рутом?)

Sergey
16.03.2018
15:15:52
по идее запускать рута в контейнере не очень секьюрно (но это не совсем то же что запускать php-fpm из под рута на хосте), но с другой стороны в моем конкетном случае прямого доступа к php-fpm у тебя нет. Но лучше так не делать

Alan
16.03.2018
15:25:39
а что за случай когда доступа нет?

Dmytro
16.03.2018
19:33:22
пятничній срач?

svyat
16.03.2018
19:46:47
ахах

Andrey
16.03.2018
19:51:08
@fes0r давай о жизни без orm, или как же вписывать sql напрямую мимо доменов

Bohdan
16.03.2018
19:51:51

Andrey
16.03.2018
19:51:55
Как вписывать sql не боясь за неконсистентное состояние домена?

Sergey
16.03.2018
20:02:47

Andrey
16.03.2018
20:04:57

Google

Sergey
16.03.2018
20:07:37


Andrey
16.03.2018
20:08:09
меня в конкретно текущий момент времени интересует проблема конкурентности доступа.
Абстрагироватся скорее не получится, поэтому лучше скажу мой случай. Есть "задача", которая поступает на сервис "выполнятор". Нужно сделать одно и то же действие в рамках одной задачи N количество раз, с подменой только одного параметра (пусть будет user_id).
Выполнятор имеет три стадии жизн. цикла "задачи" - создана, заполняется юзерами, выполняется
причём заполняется юзерами и выполняется могут выполнятся одновременно для одной и той же "задачи"
собственно в чём прикол. Выполнение можно поставить на "паузу", если успеешь
на паузу можно поставить до перехода в статус "выполнена" (когда она полностью заполнена, и для всех юзеров выполнено действие)
собственно штука в том, что апдейт идёт полностью домена (так уж написан интерфейс storage). Дифф не смотрится, и select for update не происходит, т. к. конкурентный доступ нужен
и если демон заполнения сделает домену статус "заполнен", он отправит на апдейт полностью текущее для него состояние "задачи" на апдейт
но в фоне, между select демона и его апдейтом, кто-то запаузил выполнение, переключил одно из полей
и апдейт демона перетрёт паузу
тут явно прослеживается, что нефиг было делать полный апдейт состояния домена, но в теории, это может нарушить его состояние
> это - если разрешить неполный апдейт


Alan
16.03.2018
20:16:06
мьютекс? лок в редиске и демон чекает его?
ну и клиент тоже перед тем как попытаться что-то сделать
https://symfony.com/doc/current/components/lock.html

Andrey
16.03.2018
21:08:05
Постгря. Select for update записей с userid+taskid
У таски есть paused

Alan
16.03.2018
21:12:38
это я предложил)

Sergey
16.03.2018
21:16:33
блин мне лень читать)

Google

Andrey
16.03.2018
21:16:56

Alan
16.03.2018
21:17:00

Sergey
16.03.2018
21:17:03
секунду
для начала вопрос - что ты знаешь о actor model?) не факт что оно тут надо - надо дочитать задачу
ну и да, еще вариант - это как тебе предложили - семафоры всякие и мьютексы на рэдисе. Просто и весьма эффективно
далее все упирается в пропускную способность

Andrey
16.03.2018
21:19:07
Как паузить не проблема
Проблема не в том

Sergey
16.03.2018
21:19:37
Не интересовался ранее
ну судя по всему у тебя все намного проще... actor model интересен тогда когда у тебя реально большой поток конкурентных запросов к одному и тому же ресурсу - например аукцион

Andrey
16.03.2018
21:19:41
Нет партиал апдейта

Sergey
16.03.2018
21:19:52

Sergey
16.03.2018
21:19:59
я в целом про операции записи и чтения.
тот кто хочет почитать сначала должен вклиниться в очередь.
кто-то обновил - дал почитать другому
все весьма тривиально
но делается это на уровне приложения
дальше проблемы будут только если операции эти происходят в большом количестве и система чувствительна к задержкам
ну то есть "херово масштабируется"
у тебя судя по описаниям чуть другая история, нет7

Google

Andrey
16.03.2018
21:23:01
Чуть да. Не настолько сложно. Масштабируется то легко. Интересовало насколько законно мне слать 'update task set paused =1 where id =', не вычитывая объект с логикой.
Из логики там "нельзя паузить то, что закончено"
Но всё имеет свойство менятся, поэтому насколько "пахнет", со стороны такой подход
Поменяется логика запрета паузы, пойду я в два места, походу править условие
Или в одно, а апдейт по сущности паузу не тронет

Sergey
16.03.2018
21:33:03

Admin
ERROR: S client not available

Alan
16.03.2018
21:38:43
покажи сеттеры

Sergey
16.03.2018
21:38:51
я уже начал накидывать статью) абажди недельку

Bohdan
16.03.2018
21:39:26
о, круть

Andrey
16.03.2018
21:40:05
public function setId(int $id) {$this->id = $id;}

Bohdan
16.03.2018
21:40:25
: void забыл

Sergey
16.03.2018
21:40:49

Andrey
16.03.2018
21:41:05
@return bool в phpdoc

Bohdan
16.03.2018
21:41:21
круче некуда

Sergey
16.03.2018
21:48:14
вынеси сохранение в один тред, чтобы не было конкуретной записи

Jan
16.03.2018
23:32:37
Камеры в кабинетах ещё.

Ivan
17.03.2018
09:24:16
поцаны.
почему бандлы плохи?
ну и лично мне они не нравятся. мне проще все разрулить через намеспейсы.

Google

Ivan
17.03.2018
09:25:34
мне надо обьяснить коллеге что разбивать свое приложение на бандлы еще на этапе построения архитектуры плохая идея.

Alex
17.03.2018
09:27:06
?
очень плохая

Alexandr
17.03.2018
09:28:00
бандл - это модуль, который можно вынуть из проекта, и в полпинка вставить в другой проект ... если этого сделать нельзя, то это не бандл, это тупо кусок проекта)

Alex
17.03.2018
09:28:56
разделение должно быть естественной эволюцией кода и приоритетен вывод в "компоненты" а бандл по мере надобности переиспользования, шейра с комьюнити итд
если проект не библиотека то а тупо симфони прожект то нафиг не нужно ничего кроме одного Аппа

Ivan
17.03.2018
09:31:21
это симфони проджект. просто его мотиваця связана с тем что он хочет на основе уже имеющихся бандлов собирать новые проекты
но у нас сейчас по сути получается проектирование сверху-вниз
я пытаюсь его отговорить от этой херовой затеи потому что непонятно во что все вообще выльется.
и над этой задачей стоет уже думать после того как у нас будет более менее рабочий вариант продукта

Alexandr
17.03.2018
09:34:42
пусть продемонстрирует разбиение на бандлы ... если там есть то, что можно переиспользовать в других проектах, то почему бы и нет

Bohdan
17.03.2018
09:36:22
но организовать реальную независимсть будет геморно...

Ivan
17.03.2018
09:36:31
я сторонник того что бы это делать после.
а то это как строить проект на микросервисах не имея на руках даже простенького приложения.
очень гемморно

Alexandr
17.03.2018
09:38:09

Who
17.03.2018
12:20:27
ребят, привет всем. я еще разок спрошу: есть нормально где почитать про webpack-encore? когда assetic использовал всё предельно ясно было, а вот с энкором не пойму ничего... например как ему в css указывать пути к шрифтам/картинкам?
я прямиком из доков сюда к вам
не нашел в доках как источники изображения, например, указывать...

Alan
17.03.2018
12:23:38