Поддерживать соединение с одной БД для нескольких заданий cron

Можно ли поддерживать одно соединение с БД или объект для отдельных заданий cron. Скрипт написан на PHP.

У меня есть несколько независимых заданий cron для вставки / обновления БД. Это также каждые 15 минут подряд. Недавно превышено максимальное соединение дБ.

Есть ли какой-либо сервис для поддержания соединения с БД? как с использованием node.js или JavaScript
Или возможно пул соединений с использованием php?

Я пробовал постоянное соединение, используя PHP, как это,

$link = mysqli_connect('p:localhost', 'fake_user', 'my_password', 'my_db');

Но тогда не работает, как ожидалось. Каждое задание cron генерирует отдельное соединение с mysql.

2

Решение

В PHP нет функции пула подключений, но некоторые короткие вы можете достичь этого с помощью «mysql_pconnect». В то же время, вы должны быть очень осторожны при использовании mysql_pconnect.

Согласно PHP mysql_pconnect:

mysql_pconnect () действует очень похоже на mysql_connect () с двумя основными отличиями.

Во-первых, при подключении функция сначала пытается найти (постоянную) ссылку, которая уже открыта с тем же хостом, именем пользователя и паролем. Если он найден, его идентификатор будет возвращен вместо открытия нового соединения.

Во-вторых, соединение с сервером SQL не будет закрыто, когда выполнение скрипта закончится. Вместо этого ссылка останется открытой для будущего использования (mysql_close () не закроет ссылки, установленные mysql_pconnect ()).

Этот тип ссылки поэтому называется «постоянным».

Подробнее нажмите Вот

Вы можете сделать еще одну вещь, которую вы должны закрыть все соединения с БД, которая идеально подходит для более чем 30 секунд или 1 минуты, и это может быть сделано через сам cron.

Во-вторых, вы должны открыть одно соединение в вашем скрипте cron и закрыть его в конце после выполнения скрипта.

0

Другие решения

Других решений пока нет …