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

Sergey
25.07.2017
10:11:55

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

Sergey
25.07.2017
10:13:58

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

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
Спасибо