Можно ли поддерживать одно соединение с БД или объект для отдельных заданий cron. Скрипт написан на PHP.
У меня есть несколько независимых заданий cron для вставки / обновления БД. Это также каждые 15 минут подряд. Недавно превышено максимальное соединение дБ.
Есть ли какой-либо сервис для поддержания соединения с БД? как с использованием node.js или JavaScript
Или возможно пул соединений с использованием php?
Я пробовал постоянное соединение, используя PHP, как это,
$link = mysqli_connect('p:localhost', 'fake_user', 'my_password', 'my_db');
Но тогда не работает, как ожидалось. Каждое задание cron генерирует отдельное соединение с mysql.
В PHP нет функции пула подключений, но некоторые короткие вы можете достичь этого с помощью «mysql_pconnect». В то же время, вы должны быть очень осторожны при использовании mysql_pconnect.
Согласно PHP mysql_pconnect:
mysql_pconnect () действует очень похоже на mysql_connect () с двумя основными отличиями.
Во-первых, при подключении функция сначала пытается найти (постоянную) ссылку, которая уже открыта с тем же хостом, именем пользователя и паролем. Если он найден, его идентификатор будет возвращен вместо открытия нового соединения.
Во-вторых, соединение с сервером SQL не будет закрыто, когда выполнение скрипта закончится. Вместо этого ссылка останется открытой для будущего использования (mysql_close () не закроет ссылки, установленные mysql_pconnect ()).
Этот тип ссылки поэтому называется «постоянным».
Подробнее нажмите Вот
Вы можете сделать еще одну вещь, которую вы должны закрыть все соединения с БД, которая идеально подходит для более чем 30 секунд или 1 минуты, и это может быть сделано через сам cron.
Во-вторых, вы должны открыть одно соединение в вашем скрипте cron и закрыть его в конце после выполнения скрипта.
Других решений пока нет …