@symfony_php

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

Sergey
16.03.2018
15:02:43
Сам дропайся, тролей тут прикормили и жалуетесь когда нормально отвечают на идиотские шуточки
я еще раз задам тебе вопрос - тебя любая статья по докеру устроит?)

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

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
@fes0r давай о жизни без orm, или как же вписывать sql напрямую мимо доменов
разве не тебя надо в первую очередь спрашивать об этом?)

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

Sergey
16.03.2018
20:02:47
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
это я предложил)

Google
Alan
16.03.2018
21:17:00
но в фоне, между select демона и его апдейтом, кто-то запаузил выполнение, переключил одно из полей
демон перед select ставит лок и работает, кто-то запаузил выполнение в это время, но перед тем как что-то сделать с полями должен дождаться пока демон снимет лок

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 =', не вычитывая объект с логикой.

Из логики там "нельзя паузить то, что закончено"

Но всё имеет свойство менятся, поэтому насколько "пахнет", со стороны такой подход

Поменяется логика запрета паузы, пойду я в два места, походу править условие

Или в одно, а апдейт по сущности паузу не тронет

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
: void забыл
не там и без void все четка

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
я сторонник того что бы это делать после. а то это как строить проект на микросервисах не имея на руках даже простенького приложения.
так пусть сделает компонент и если он получится переиспользуемым то вытащит в бандл с конфигурацией) сам потом откажется

Страница 750 из 1418