Таймаут контейнера Docker php/nginx для запросовPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Таймаут контейнера Docker php/nginx для запросов

Сообщение Anonymous »

У меня есть приложение, которое сканирует данные с торговой площадки. Он работает на докере. Содержимое файла Compose.yml следующее.

Код: Выделить всё

version: '3'

networks:
nginx-php82-mysql8:

services:
# nginx
nginx-service:
image: nginx:stable-alpine
container_name: nginx-container
ports:
- "8080:80"
volumes:
- ./app:/var/www/project
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php82-service
- mysql8-service
networks:
- nginx-php82-mysql8

php82-service:
build:
context: .
dockerfile: ./php/Dockerfile
container_name: php82-container
ports:
- "9000:9000"
volumes:
- ./app:/var/www/project
- ./php/php.ini:/usr/local/etc/php/conf.d/custom.ini
networks:
- nginx-php82-mysql8

mysql8-service:
image: mysql:8
container_name: mysql8-container
ports:
- "4306:3306"
volumes:
- ./mysql:/var/lib/mysql
command: --mysql-native-password=ON --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
restart: always # always restart unless stopped manually
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_PASSWORD: secret
networks:
- nginx-php82-mysql8

mailer-service:
container_name: mailer-container
restart: on-failure:10
image: schickling/mailcatcher
environment:
- RAILS_ENV=development
ports:
- "1080:1080"
- "1025:1025"
networks:
- nginx-php82-mysql8

rabbitmq3-service:
container_name: rabbitmq3-container
image: rabbitmq:3-management
environment:
- RABBITMQ_DEFAULT_USER=guest
- RABBITMQ_DEFAULT_PASS=guest
ports:
- '5672:5672'
- '15672:15672'
networks:
- nginx-php82-mysql8

redis-service:
image: "redis:alpine"
container_name: redis-container
networks:
- nginx-php82-mysql8

Приложение получает данные о продуктах с торговой площадки, а затем отправляет сообщения для каждого продукта (чтобы получить отзывы, предложения и т. д.). Вначале он работает так, как ожидалось, но после обработки около 30 тыс. (5-6 часов) сообщений я продолжаю получать TimeoutException («Достигнуто время простоя для URL-адреса»).
Использование клиента Symfony Http для делать запросы. Сначала я подумал, что проблема, должно быть, связана с Http-клиентом, но заметил, что я даже не могу заставить композитор требовать guzzlehttp/guzzle:^7.0, время ожидания также истекает.
Что может быть? быть причиной тайм-аута?
Чтобы это исправить, мне придется пересобрать все контейнеры. И он снова начинает работать хорошо, но через несколько часов работы выходит из строя с тем же TimeoutException. Простая компоновка докера и компоновка докера не помогают.

Подробнее здесь: https://stackoverflow.com/questions/788 ... er-timeout
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»