@symfony_php

Страница 260 из 1418
Boris
24.07.2017
09:36:55
thanks

vlad
24.07.2017
14:22:29
Ребят, не запрещено ли запускать в цикле, допустим, 100 процессов?

Просто весьма долгая задача, и нужно разбить её по процессам, пока для теста, допустим, по 10 т.е. крутится цикл, и 10 раз запускает new Process(''команда')

в команду летят разные аргументы, само собой

Google
vlad
24.07.2017
14:23:46
а идентификатор процесса падает в массив

Константин
24.07.2017
14:23:55
Запрещено кем?

Каждый стреляет себе в ногу как может :)

vlad
24.07.2017
14:24:14
ну, правилами хорошего тона)

ну то, что это выстрелы в ногу - возможно, согласен но в целом - работать будет?

и вот ещё вопрос, как можно дождаться выполнения всех этих 10-ти процессов? чтобы потом запустить 10 следующих

Константин
24.07.2017
14:25:23
После запуска вызывать у всех ->wait()

Danil
24.07.2017
14:25:24
а почему сразу в очереди не посмотреть?

vlad
24.07.2017
14:25:43
ry{ $processArray[$index] = new Process('команда'.аргумент); $processArray[$index]->mustRun(); $counter++; if ($counter === 10){ $output->writeln('Первые 10 потоков запущены. Ждём завершения и запускаем остальные'); break; } } catch (Exception $exception){ $output->writeln("Ошибка завершения процесса); }

я думал можно сделать как-то так

но вот как понять, что все завершились?

при run, вроде, wait() автоматом, нет?

можно, пожалуйста, подробнее?

Google
vlad
24.07.2017
14:27:03
а почему сразу в очереди не посмотреть?

Константин
24.07.2017
14:27:41
Да, сразу. И если ты запускаешь через run() || mustRun(), то у тебя 10 процессов запускаются последовательно.

То что ты хочешь сделать, надо в первом цикле сделать ->start(). А потом во втором цикле всем сделать ->wait()

vlad
24.07.2017
14:29:08
блин, точно

спасибо, сейчас попробую

Константин
24.07.2017
14:29:18
Но лучше не изобретать свой менеджер процессов, а как советуют посмотреть в сторону очередей

vlad
24.07.2017
14:50:24
Первый раз об этом слышу...

Не подскажите, по каким ключевым словам копать?)

Константин
24.07.2017
14:52:02
RabbitMQ, NSQ, Nats

vlad
24.07.2017
14:52:57
спасибо большое, сейчас буду смотреть

Alan
24.07.2017
16:15:03
nsq и nats это не совсем очереди

distributed messaging system

там у той и другой есть в факе гарантии которые они предоставляют

если надо чтоб долбило пока не получит ответ, ставило в отложенную очередь на повтор то это не про них

Константин
24.07.2017
16:20:22
В nsq точно есть повтор

Alan
24.07.2017
16:31:35
ага если клиент не ответил FIN или ответил REQ, то есть именно повтор, хотя имхо nsq сложнее поднять чем ребит, и у ребита есть Dead Letter Exchanges - больше возможностей с отложенными очередями

короче надо точно понять что тебе надо и чем можно пожертвовать)

nats вообще с одного пинка заводится

Константин
24.07.2017
18:41:44
А в чём проблема с поднятие nsq?

Valentin
24.07.2017
19:16:52
http://queues.io/

Google
Dmitriy
25.07.2017
06:17:44
Beanstalkd бери и не парься

Sergey
25.07.2017
08:30:43
+1

Константин
25.07.2017
08:31:46
обоснуйте

Sergey
25.07.2017
09:49:15
привет, подскажите плиз, вот если в сущности есть метод, и мне в этот момент нужно сходить в репозиторий, как быть?

Roman
25.07.2017
09:49:36
отказаться от этой затеи

значит, вы что-то сделали не так, если появилась такая потребность

Sergey
25.07.2017
09:59:10
суть вот в чем, есть скидка. у нее есть метод validate. Вот он чекает скидка активна/не активна, просчрочена/не просрочена. Но помимо этого мне нужно понять, использовалась ли эта скидкакем-то еще до этого. Это в принципе можно решить если держать в скидке коллекцию заказов, к которой она применялась. Но тоже не пойму норм ли так?

Bohdan
25.07.2017
10:01:53
один из вариантов - вынести в сервис проверку валидности

Sergey
25.07.2017
10:03:15
если тебе из сущности надо сходить в репозиторий, значит репозитория быть не должно и должна быть связь и через нее все делать

или же это не задача сущноси

> Но помимо этого мне нужно понять, использовалась ли эта скидкакем-то еще до этого. чисто теоритически тут много вариантов. Это либо лог использования у самой сущности и тогда она все может сделать без репозитория

Sergey
25.07.2017
10:08:33
ну то есть все упирается в то как ты поделил систему

один из вариантов - вынести в сервис проверку валидности
а потом еще всю бизнес логику в transactional scripts, перевести все на active record и настанет процедурное счастье

если что - это вполне рабочий вариант - просто это крайняя мера, типа "в любой непонятной ситуации делай сервис". Это плохо сказывается на тестируемости и связанности но как быстрое решение проблемы может быть ок. С тудушкой "зарефакторить как только разберемся как оно должно работать"

Sergey
25.07.2017
10:11:55
один из вариантов - вынести в сервис проверку валидности
Так было сделано изначально, но помоему валидна ли скидка должна понимать сама скидка. Поэтому я решил это вынести в сущность.

Bohdan
25.07.2017
10:13:20
тогда действительно лучше всего связи добавить

vlad
25.07.2017
10:50:19
доброго всем дня

ребят, вопрос такой в оффициальной документации написано вот что: // executes after the command finishes if (!$process->isSuccessful()) { throw new ProcessFailedException($process); }

Google
vlad
25.07.2017
10:50:48
т.е. этот кусок кода выполняется после завершения процесса, да?

иначе говоря, мне нужно после завершения процесса запускать другой процесс я могу вставить вызов другого процесса в условие, да?

получается условие такое же, только без отрицания, да?

Alex
25.07.2017
11:53:05
Нет файла роутинг, есть только класс реализующий RouteCollection()

https://github.com/hwi/HWIOAuthBundle/blob/master/Resources/doc/2-configuring_resource_owners.md

Как реализовать тогда финкционал firewall_names ?

Admin
ERROR: S client not available

Alex
25.07.2017
12:04:40
В проекте вообще нет config.yml файлов

Константин
25.07.2017
13:03:31
152-ФЗ «О персональных данных» подразумевает, что данные должны располагаться ТОЛЬКО на территории РФ или подразумевает, что на территории РФ должна быть как минимум копия всех данных?

Valentin
25.07.2017
17:06:49
Только на территории РФ. Но этот закон не распространяется на всех подряд

https://prograbli.ru/techno_experience/The_law_on_the_protection_of_personal_data_on_the_site_the_basics/

f4rt~
25.07.2017
17:31:34
суровость законов, компенсируется не обязательностью их выполнения

Alan
25.07.2017
20:21:04
ребят есть вопросец, вот в доках симфони по ExpressionLanguage пишут the ExpressionLanguage component is a perfect candidate for the foundation of a business rule engine.

кто как его использует? и есть ли плюсы в применении к бизнес правилам?

посмотрел как оно используется в роутинге и секюрити, там из конфигов параметры приходят и видимо оно обеспечивает санитизацию, но для business rule engine почему это рекомендуют?

Andrew
25.07.2017
21:26:13
посмотрел как оно используется в роутинге и секюрити, там из конфигов параметры приходят и видимо оно обеспечивает санитизацию, но для business rule engine почему это рекомендуют?
Потому что их прочитать и понять сможет не только программист. Можно создать отдельные панели для маркетологов например, в которых они на этом языке смогут описывать правила скидок и т.д.

Alan
25.07.2017
21:27:09
ну только если очень простые правила, иначе там нужны подстановки в строку которые через массив делаются

но пример хороший да, а если не нужен пользовательский ввод или значения из конфигов, есть еще хорошее им применение?

Sergey
25.07.2017
21:42:37
фактически они предлагают использовать эту штуку для построения своих DSL

но хз

Google
Alan
25.07.2017
21:42:58
строка как бы)

Daniel
26.07.2017
05:27:17
кто как его использует? и есть ли плюсы в применении к бизнес правилам?
Ретейл срм использует его вместе с твиг для того чтобы была возможность создавать тело запроса из переменных + циклы и т.д. и т.п.

В итоге огромный профит

Alan
26.07.2017
07:12:25
угу, то есть писать вне пхп файлов с ним получается удобно

Eugeny
26.07.2017
09:32:11
Всем привет. Такой вопрос. Как использовать текст перевода в конфиг yml. Оно всегда как строку передает и не обрабатывает. Напр. app.socia.twitter.message передаю и получаю это как строку

Константин
26.07.2017
09:40:31
А где декларируется, что в конфиг файлах можно вставлять то что будет переведено?

Eugeny
26.07.2017
09:42:34
в месседж

app: social:...

Константин
26.07.2017
09:43:14
Это бандл какой то или что? Откуда это?

Andrew
26.07.2017
09:44:49
Eugeny
26.07.2017
09:45:16
да, для расшаривания в соц сетях. Это Sylius. Файл находится в app\Resources\translations





вот тут использую

Константин
26.07.2017
09:49:00
Там где это в твиге выводится, нужно вызвать траслятор

Dinar
26.07.2017
10:20:15
{{ 'your_key'|trans }}

Nikita
26.07.2017
11:12:18
Спасибо

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