
Vitalii
11.05.2017
11:59:18
ниче се

dypa
11.05.2017
11:59:40
вы как с луны свалились...

Дилмурод
11.05.2017
11:59:55
Спасибо всем вам

Aleserche
11.05.2017
12:00:42

Google

Ivan
11.05.2017
12:08:08

Aleksandr
11.05.2017
12:45:07
nikic/iter помнится есть такое от Никиты Попова

Aleh
11.05.2017
12:48:33
там он вроде для генераторов, а с ними вообще отдельная история

Aleksandr
11.05.2017
12:54:53

Vadim
11.05.2017
13:27:49
порядок аргументов в array функциях, всегда можно в доке посмотреть
там не банят вроде

Aleh
11.05.2017
13:28:18
а можно поставить норм обертки, где порядок не вызывает вопросов

Альберт
11.05.2017
13:34:11
Я всегда удивляюсь почему в сообществе пхп не прижилась ни одна обертка, которая бы обворачивала все это безобразие стандартных функций

Denis
11.05.2017
13:36:11

Альберт
11.05.2017
13:36:41
Что бы соблюдался какой то порядок в наименование, порядке аргументов)
Видимо у самих разработчиков языка PHP нет никакого соглашения

Aleh
11.05.2017
13:38:11
а потом BC

Google

Альберт
11.05.2017
13:38:55
BC это что?))

Aleh
11.05.2017
13:39:15
backward compatibility

Альберт
11.05.2017
13:40:22
А ну да)

?
11.05.2017
13:52:30

Aleh
11.05.2017
13:52:44

?
11.05.2017
13:53:00
знал?

Aleh
11.05.2017
13:53:18
скидывали выше и когда-то просматривал
ну короч вечером будет что сравнить

Aleksandr
11.05.2017
15:40:18
вообще унифицирование синтаксиса является одной из задач для php 7.2. Проблема есть, ее признают, ее пытаются решить


Alexey
11.05.2017
17:56:50
Ребят помогите пожалуйста, я застрял немного с вот такой задачей... ?
Есть воркер на PHP, задача которого принять задание по RabbitMQ, затем стянуть данные по HTTP следуя этому заданию и отправить в другую очередь RabbitMQ
При отсутствии заданий в течении ~30м воркер теряет связь с RabbitMQ и из этого состояния уже не выходит, задачи до него не доходят.
Для начала я хотел бы, чтобы он в такой ситуации просто падал. А в идеале чтобы сам умел реконнектится.
Залипает он на 105 строке $channel->wait(null, true, null);
Пришлось обложить код кучей try.. catch, сейчас выглядит некрасиво, но это нисколько не помогло.
Вот код :
https://gist.github.com/targence/57f74a4e9c03d198f330a61e2e9c3e9a#file-worker-php-L105
Вот так выглядит лог воркера при работе
2017/05/11 17:25:02 Waiting for messages
2017/05/11 17:25:26 [<-] Received task {"id":1,"chat_id":205786,"task":"get_media_caption","params":"BT7gb3SlRD-"}
2017/05/11 17:25:29 [->] Sent to Publisher
2017/05/11 17:25:29 Waiting for messages
все, после 30 минут неактивности, воркер завис...
Отдельно скажу, что в либе php-amqplib вроде бы как есть всякие параметры типа heartbeat, но то ли они у меня не работают, то ли я не понимаю как их применить правильно, все равно в итоге воркер зависает. ?


Dmitriy
11.05.2017
18:00:05
посмотри настройки консольного пхп
может у вас там стоит "время жизни" 30 минут )

Nick
11.05.2017
18:10:40
кто-нибудь может подсказать, почему не ресолвится статика в доцкере?
https://pastebin.com/Q7aqr5r3
https://pastebin.com/Kn7PYfbg


Alexey
11.05.2017
18:15:22
может у вас там стоит "время жизни" 30 минут )
а где именно смотреть?
я php поднимаю в докере с дефолтными настройками.
Вот докер файл.
https://github.com/docker-library/php/blob/6844e717a56a5dd8ad87a236a96bea069cc635fd/7.1/alpine/Dockerfile
Вот тут env переменные конкретно в моем контейнере,
https://gist.github.com/targence/57f74a4e9c03d198f330a61e2e9c3e9a#file-env
в тут содержание папки настроек
bash-4.3# ls /usr/local/etc/php/conf.d/ -lh
total 24
-rw-r--r-- 1 root root 18 Apr 18 22:24 date_timezone.ini
-rw-r--r-- 1 root root 20 May 10 12:44 docker-php-ext-bcmath.ini
-rw-r--r-- 1 root root 18 May 10 12:44 docker-php-ext-exif.ini
-rw-r--r-- 1 root root 16 May 10 12:44 docker-php-ext-gd.ini
-rw-r--r-- 1 root root 19 May 10 12:44 docker-php-ext-pcntl.ini
-rw-r--r-- 1 root root 16 Apr 18 22:24 memory-limit.ini
bash-4.3#


Aleserche
11.05.2017
18:29:24
время жизни консольного скрипта не ограничено по времени. Вроде обсуждали уже. Там 0 захардкодили

Aleksandr
11.05.2017
18:30:33

Alexey
11.05.2017
18:36:43
Да вроде можно.
да, сорри, просто как то была проблема при которой не работал относительный путь... с тех пор везде указываю через $(pwd), чтобы он разворачивался в абсолютный

Google

Aleksandr
11.05.2017
18:38:21

Kirill
11.05.2017
18:40:00
а ещё лучше через супервизор
в каком-нибудь таком виде:
[program:some-worker]
process_name=%(program_name)s_%(process_num)02d
command=php ..../worker.php
autostart=true
autorestart=true
user=www-data
numprocs=21
redirect_stderr=true
stdout_logfile=/var/log/supervisor/worker.log

Alexey
11.05.2017
18:42:14

Kirill
11.05.2017
18:42:51
по-этому и запускать лучше через ноухоп
чтобы процесс не лочить
ну т.е. воркер же в том же контейнере где fpm стартует?

Aleh
11.05.2017
18:43:33
да не

Alexey
11.05.2017
18:43:39

Aleh
11.05.2017
18:43:39
запускать воркер вместе с fpm не оч заетя

Kirill
11.05.2017
18:43:52

Aleh
11.05.2017
18:44:16
ну сразу надо думать, как его менеджить, чтоб не падал, как логи из него тянуть, как мониторить
а если по процессу на контейнер, то вопросы для всех контейнеров решаются одинаково

Kirill
11.05.2017
18:44:36
так в стдаут натравить или файл и вуаля

Aleh
11.05.2017
18:44:37
удобно

Kirill
11.05.2017
18:44:57
типа такого: https://github.com/LaravelRUS/laravel.ru/blob/2.0/docker/php/start.sh#L22

Aleh
11.05.2017
18:45:22
ну хз, на любителя
по вопросу чего виснет через 30 минут кролик без идей

Alexey
11.05.2017
18:47:10

Google

Aleh
11.05.2017
18:47:24
а если несколько, то нужно все это заворачивать
у нас один процесс на контейнер в докерах и все норм собирается

Alexey
11.05.2017
18:47:45

Aleh
11.05.2017
18:48:50
и не вижу никакой проблемы из готового образа запустить еще один сервис с нужной командой
но опять же, может кому-то зачем-то и удобнее делать как @SerafimArts предлагает

Kirill
11.05.2017
18:50:19
я просто хз как это в отдельном контейнере стартовать =)
там же надо php-cli ставить, а не хочется по 100 раз собирать одно и то же

Aleh
11.05.2017
18:51:05

Admin
ERROR: S client not available

Kirill
11.05.2017
18:51:21
ну так в отдельный контейнер его опять ставить

Aleh
11.05.2017
18:51:29
просто один контейнер запустит первую команду и будет висеть да слушать, а второй запустит fpm
зачем, вы образы не делаете?

Kirill
11.05.2017
18:51:37
и собирать с теми же настройками, что и в fpm контейнере
образы?
:D

Aleh
11.05.2017
18:52:48
))

Kirill
11.05.2017
18:53:22
ну докер компоуз и есть считай образ

Aleh
11.05.2017
18:53:26
не

Kirill
11.05.2017
18:53:31
один большой из нескольких маленьких

Google

Aleh
11.05.2017
18:53:35
докер-компоуз эт про сервисы

Roman
11.05.2017
18:53:54
то есть не рекомендуется в одном контейнере собрать nginx + php + php-fpm?

Kirill
11.05.2017
18:54:11
ну нгинкс и фпм всё же лучше в разных

Roman
11.05.2017
18:54:11
Dockerfile собирает образ

Aleh
11.05.2017
18:54:13
но бывают ситуации, когда вы можете этого хотеть и тогда выдумывайте себе еще всякие supervisord и прочее

Roman
11.05.2017
18:55:12
хотел бы я написать, что не все мне понятно в доке по докеру, потому что там все на англ, но это мои проблемы, что я плохо знаю англ

Kirill
11.05.2017
18:55:24
а вот fpm и cli юзают один и тот же билд пыхи в докере, по-этому я и хз как в двух разных контейнерах иметь один и тот же билд

Aleh
11.05.2017
18:55:36
контейнер запускается из образа

Kirill
11.05.2017
18:55:42
ну да

Roman
11.05.2017
18:55:47
как же все усложняется, если придерживаться стратегии - один контейнер - один процесс

Kirill
11.05.2017
18:55:51
в from можно путь указать локальный?

Aleh
11.05.2017
18:55:52
если брать аналогии из ооп, то контейнер это объект, а класс это образ)

Kirill
11.05.2017
18:55:57
на другой dockerfile

Aleh
11.05.2017
18:56:29
Dockerfile как раз описывает образ, про локальный хз, не было надобности
про нелокальный очевидно да)
локальный нельзя, он по именам резолвит

Kirill
11.05.2017
18:57:36
ну вот я про это и говорю

Aleh
11.05.2017
18:57:39
про что?

Kirill
11.05.2017
18:57:45
dockerfile стартует fpm
ну и собирает всё

Aleh
11.05.2017
18:58:03
в dockerfile можно указать дефолтную команду