Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

использование разделяемой памяти в PHP

333
11 октября 2007 года
GHopper
200 / / 28.12.2004
Здравствуйте!
Задача - запускать некоторый скрипт по расписанию. Реализация - храним дату последнего запуска в файле, в index.php проверяем текущаю дату и дату из файла и, если пора, выполняем скрипт, перезаписываем дату в файле. mysql использовать нельзя.
Использование chron`а не желательно - при переносе сайтов с одного сервера на другой про кроны забывают, забывают удалять скрипты из крона при удалении файла и др.
Все норм, вот только если запускаемых по расписанию скриптов много, то обработка файла с датами занимает много времени. Как выход, хочу попробовать использовать разделяемую память.
Имеем две технологии - семафораы и разделяемую память. Первую нужно устанавливать отдельно - сомневаюсь, что все хостеры ставят у себя это расширение. Вторая, как написано в документации, работает на всех unix-системах!
Написал класс CChron, работающий на семафорах. Оттестил - все норм! Удобно, быстро и просто. Притащил сырци домой - Fatal error: call to undefined function sem_get()! Дома FreeBSD 6, Apache 2, PHP 5!

Вопрос - стоит ли использовать семафоры? Почему о них так мало говорят? Будут-ли проблемы с переносом сайта на другой unix-хостинг? Какие возможны проблемы? Как гарантировать, что к общей памяти будут иметь доступ только мои скрипты?
12
11 декабря 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: GHopper

Притащил сырци домой - Fatal error: call to undefined function sem_get()! Дома FreeBSD 6, Apache 2, PHP 5!


... и Windows? Да? На винду IPC не портированн. Да и на никсах это расширение по дефолту не включено.

Цитата: GHopper

Вопрос - стоит ли использовать семафоры? Почему о них так мало говорят? Будут-ли проблемы с переносом сайта на другой unix-хостинг? Какие возможны проблемы? Как гарантировать, что к общей памяти будут иметь доступ только мои скрипты?


Для нужных задач конечно стоит.
Видимо потому что мало знают... но кто хочет, тот найдет и тот знает.
Если хост поддерживает IPC то не будет.
Вот в процессе работы и узнаешь.
Как? Это не твоя забота. Разделение прав использования системы ложится на разработчиков, вот пусть они и думают.

http://www.opennet.ru/base/dev/ipc_prog.txt.html

12
12 декабря 2007 года
alekciy
3.0K / / 13.12.2005
Для умников уточняю:
Цитата:

Note: Для Windows-платформ это расширение недоступно.

2.1K
12 декабря 2007 года
vectoroc
234 / / 25.07.2006
Цитата:
На винду IPC не портированн.


IPC - inter process communication
http://en.wikipedia.org/wiki/Inter-process_communication

Пайпы, сокеты и многое другое под виндой доступно, и для того чтобы использовать IPC, не надо ничего портировать. Давайте называть вещи своими именами

12
12 декабря 2007 года
alekciy
3.0K / / 13.12.2005
:D ......
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог