@jiroler

PHP. Как реализовать общий счетчик между несколькими скриптами?

На выделенном сервере постоянно работает несколько демонов (бесконечных циклов php) + периодически запускаются новые + несколько скриптов на кроне.
Для реализации некоторого алгоритма необходимо использовать общий счетчик для каждого скрипта/процесса во время их работы. Для примера:
  • Демон 1 : Счетчик = 1
  • Демон 1 : Счетчик = 2
  • Демон 3 : Счетчик = 3
  • Демон 5 : Счетчик = 4
  • Демон 2 : Счетчик = 5
  • Крон 1 : Счетчик = 6
  • Крон 2 : Счетчик = 7
  • Демон 2 : Счетчик = 8
  • Демон 1 : Счетчик = 9
  • Демон 1 : Счетчик = 10
  • Демон 13 : Счетчик = 11
  • Крон 3 : Счетчик = 12


Использование значения счетчика может понадобится в очень короткий промежуток времени между несколькими скриптами и он с каждым использованием должен быть больше предыдущего на 1.

Пробовал поддерживать значение в файле - в какие то моменты значение просто не считывается и все сбивается (Не получилось понять причину)
БД (MySql) боюсь использовать, тк обращения будут очень частые и частота растет.

Подскажите, пожалуйста, оптимальные варианты решения.
  • Вопрос задан
  • 418 просмотров
Пригласить эксперта
Ответы на вопрос 2
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Пробовал поддерживать значение в файле - в какие то моменты значение просто не считывается и все сбивается (Не получилось понять причину)
скорее всего банальная блокировка открытого файла.
БД (MySql) боюсь использовать, тк обращения будут очень частые и частота растет.
ну, не знаю, запрос индексированного поля из бд происходит примерно за 0,0013 секунд на моей не самой мощной машине, + неблокирующие апдейты. На продакшене есть машины обрабатывающие до ~100 запросов в сек. Другое дело что это стрельба по воробьям из пушки.
Как лучший вариант имхо - мемкеш, или редис.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽