Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (37 – Повысить безотказность сервера, часть 17)

предыдущая часть ««»» следующая часть

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

При помощи данной функции можно легко разделить структуру хранения и сохранять отдельно, например, информацию о телефоне IPhone 8, который можно купить по ссылке: https://www.mcdigital.ru/catalog/apple_iphone_8_plus.html

Функция flock () имеет простую синтаксическую структуру.

$boolean = flock (FILEHANDLE | $how) ;

Первым параметром этой функции является дескриптор файла, открытый в файл, который должен быть заблокирован, а вторым — числовая константа с обозначением операции блокировки, которая должна быть выполнена. 

Параметры функции flock ()

LOCK_EX - Установить исключительную блокировку

LOCK_SH - Установить разделяемую блокировку

LOCK_UN - Разблокировать файл

Разделяемыми блокировками, создаваемыми с помощью операции LOCK_SH, могут владеть несколько процессов одновременно, и они применяются, когда инфор­мацию в файле читает сразу несколько программ. Здесь используется блокировка LOCK_EX, поскольку она может принадлежать одновременно только одному процессу и применима для блокировки файла, в который должна быть выполнена зап­ись. Эти три константы могут быть импортированы из модуля Fcntl с использованием тега : flock.

Подпрограммы log_debug (), log_notice () и log_warn () будут откорректированы так, чтобы они позволяли записать в дескриптор файла правильно откорректи­рованные сообщения. В качестве дополнительной возможности в этих функциях предусмотрена проверка внутренней переменной пакета $PRIORITY, позволяющая вписывать в журнал только те сообщения, приоритет которых равен значению этой переменной или превышает его. В результате появляется возможность вести подробный журнал во время разработки и отладки, а после ввода в эксплуатацию ограничиться регистрацией сообщений об ошибках.

Пример использования этой схемы приведен в листинге ниже. В нем пределен небольшой модуль LogFile.

После загрузки модуля LogFile вызывается подпрограмма init_lоg (), которая передается имя пути к применяемому файлу журнала.

2014-10-25 23:54:26

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2024 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония