
Maksim
01.08.2018
14:55:35

Artem
01.08.2018
14:55:35

Maksim
01.08.2018
14:56:00

smile
01.08.2018
14:56:07
да, я хочу иметь возможность доклеивать данные
мы с тобой кстати както эту тему в чатике обсуждали - я таки дописал свой велосипед - разбираю ResolveInfo в резолвере и с помощью happyr specifications строю запрос (заранее описав как приклеить)
Пока велик ездит вроде ?
https://pastebin.com/0CDXxWFc

Google

Valentin
01.08.2018
14:57:42
Хз, ну вроде как стратегия порождает "решение" определенной задачи, тут я не уверен, но кажется на refactoring.guru видел стратегию в списке порождающих, сейчас проверю

Sergey
01.08.2018
14:59:18

smile
01.08.2018
15:01:39
Гляну, не уверен что оно мне подойдёт правда
ну я думаю ты не захочешь так завязываться на happyr) если чо - сам разбирающий велосипед вот - https://github.com/SergeySmile/graphql-specs-query-processor/blob/master/src/QueryProcessor/QueryProcessor.php
правда доки вообще нет, может когдато найду время написать

Sergey
01.08.2018
15:02:24


Valentin
01.08.2018
15:07:57
ой, как это я пропустил... эм, а схера ли?)
Слушай, у меня сейчас демон есть, на нём очередь крутится, и периодически падает с фатал мемори лимитом, я полюркал по гуглу - везде советуют очищать переменные типа $var1 = null + unset, вызывать самому gc_collect_cycles() , но даже после того как я везде начал это делать (очищать переменные + вызывать сборщик после каждой выполненной задачи) он хоть и позже но всё так же валится с мемори лимитом, я не понимаю куда копать, что мне делать, начал переписывать некоторые задачи с использование генераторов но я не могу везде это сделать, что делать что бы память отдавалась? Задачи разные - запись в бд, внешние запросы на апи, сохранение файлов и прочее


Alexander
01.08.2018
15:09:10
Слушай, у меня сейчас демон есть, на нём очередь крутится, и периодически падает с фатал мемори лимитом, я полюркал по гуглу - везде советуют очищать переменные типа $var1 = null + unset, вызывать самому gc_collect_cycles() , но даже после того как я везде начал это делать (очищать переменные + вызывать сборщик после каждой выполненной задачи) он хоть и позже но всё так же валится с мемори лимитом, я не понимаю куда копать, что мне делать, начал переписывать некоторые задачи с использование генераторов но я не могу везде это сделать, что делать что бы память отдавалась? Задачи разные - запись в бд, внешние запросы на апи, сохранение файлов и прочее
пораждай демоном исполнителя при получении задачи и потом пусть тот умирает

Valentin
01.08.2018
15:11:01

Maksim
01.08.2018
15:11:09
Слушай, у меня сейчас демон есть, на нём очередь крутится, и периодически падает с фатал мемори лимитом, я полюркал по гуглу - везде советуют очищать переменные типа $var1 = null + unset, вызывать самому gc_collect_cycles() , но даже после того как я везде начал это делать (очищать переменные + вызывать сборщик после каждой выполненной задачи) он хоть и позже но всё так же валится с мемори лимитом, я не понимаю куда копать, что мне делать, начал переписывать некоторые задачи с использование генераторов но я не могу везде это сделать, что делать что бы память отдавалась? Задачи разные - запись в бд, внешние запросы на апи, сохранение файлов и прочее
смотри где течёт. Мб доктрина какая)

Alexander
01.08.2018
15:11:36
чаще всего течет именно в соединениях к базам и орм

Maksim
01.08.2018
15:11:50

Alexander
01.08.2018
15:11:59
проще всего слушателем только ивенты ловить, форкаться и уже в форке устанавливаться соединения делать работу и умирать

Google

Alexander
01.08.2018
15:12:41

Valentin
01.08.2018
15:13:02

Alexander
01.08.2018
15:13:14

Maksim
01.08.2018
15:15:13
ну форки процессов аще никаких с хорошими демонами не ассоциируются) ну вот прям вообще никак)

Alexander
01.08.2018
15:15:30

Maksim
01.08.2018
15:15:45

Alexander
01.08.2018
15:15:58

Maksim
01.08.2018
15:16:56

Valentin
01.08.2018
15:17:54

Maksim
01.08.2018
15:18:49

Valentin
01.08.2018
15:20:04
А есть демоны с доктриной, ты там переоткрываешь соединение в entity manager?

Maksim
01.08.2018
15:20:15
у меня не может быть демона с доктриной
ровно как и доктрины
товарищи с форками застряли где-то во временах пхп 5.4, поэтому и страдают такой хуйнёй.

Alexander
01.08.2018
15:20:49
и не считаю это решение ущербным
от слова совсем

Maksim
01.08.2018
15:21:10
назови хоть 1 его плюс
а затем попробуй назвать меньше 3х минусов

Google

Alexander
01.08.2018
15:21:27
ничего не подтекает как минимум)
не нужно париться про отвалившиеся соединения

Maksim
01.08.2018
15:21:59
ясна)

Alexander
01.08.2018
15:22:29
можно отлавливать ситуации где воркеры «падают»

Maksim
01.08.2018
15:22:56

Valentin
01.08.2018
15:24:25

Maksim
01.08.2018
15:24:32
ну и если у тебя доктрина, не забывай подчищать
ты не сможешь пересобрать на лету контейнер. Как и куда будешь впихивать новый em?
поднятие обратно займёт доли секунды, так что аще насрать

Sergey
01.08.2018
15:27:25
Там все глобальное
Не выйдет безопасно подсунуть коннекшен из пула

Maksim
01.08.2018
15:35:07
в целом использование доктрины в демонах нихера не оправдано

Alexander
01.08.2018
15:37:23

Maksim
01.08.2018
15:37:34
чё фиксить-то

Alexander
01.08.2018
15:37:43
у нас человек спросил абстрактно, как так сделать чтобы не текло
ты ему сказал не используй доктрину или чисти
я предложил другой вариант
при этом ни ты ни я не знаем что у него за задача и как он пишет)

Google

Alexander
01.08.2018
15:38:52
но если уже утечки памяти, то он как минимум отличается от твоих возможностей

Igor A.
01.08.2018
15:57:24
Скажите, пожалуйста, что можно почитать про DDD? Все вокруг говорят, может оно и мне надо..

Maksim
01.08.2018
15:57:47
не надо)

Anton
01.08.2018
15:57:54
Не стоит психику травмировать

Alexander
01.08.2018
15:58:20
два адепта высказались)

Maksim
01.08.2018
15:58:38

Igor A.
01.08.2018
15:58:54
Психика крепкая. :) Но все же, нужно начинать с Эванса?

Admin
ERROR: S client not available

Alexander
01.08.2018
15:58:55

Maksim
01.08.2018
15:59:03
если доктрину не подчищать, то как бы чисто он не писал, то будет течь)

Artem
01.08.2018
15:59:52

Igor A.
01.08.2018
16:00:13

Maksim
01.08.2018
16:00:31
я просто очень толерантный)
создание процесса, ровно как и весь геморрой, связанный с его (процесса) поддержкой - тоже не для ламеров вариант. Можно не ток хуже сделать, но и пол бошки отстрелить

Alexander
01.08.2018
16:00:47

Maksim
01.08.2018
16:02:09
@zloyuser вещай давай за процессы) почему оно так, кроме проблем с коннектами

Alexander
01.08.2018
16:02:29

Maksim
01.08.2018
16:02:50

Anton
01.08.2018
16:03:04

Alexander
01.08.2018
16:03:12

Google

Anton
01.08.2018
16:03:25

Artem
01.08.2018
16:03:36

Igor A.
01.08.2018
16:03:45

Anton
01.08.2018
16:06:52

Maksim
01.08.2018
16:19:41
плюс о том, что можно за коннекты не париться - аще не плюс)

F01134H
01.08.2018
17:51:29
Парни, у меня вштал вопрос
короче, есть какой то DTO
в нем нужно что бы были поля, которые обязательно должны быть заданы перед прочтением
как это реализовать, что бы не пихать эти поля кучей в конструктор?

Maksim
01.08.2018
17:54:14
Validator

F01134H
01.08.2018
17:55:35
?

Maksim
01.08.2018
17:56:06
Провалидируй дтошку и вопросов не будет

F01134H
01.08.2018
17:56:30
суть именно в том, что бы задать состояние. А не проверить, что состояние есть уже потом
т.к. у меня везде тайпхинты напиханы, оно итак валидируется

Maksim
01.08.2018
17:57:08
Пример. Чет херней попахивает

Dmitry
01.08.2018
17:57:28
приватные поля + конструктор или билдер

F01134H
01.08.2018
17:57:34
Просто есть ДТОшка с кучей свойств, и мне нужно как то распределить это дело из конструктора
сеттеры можно обойти или забыть использовать
но похоже другого способа нет, да?