Exeplor
9.11.2013 - 18:22
Как правильно реализовать корректный обмен данных между нескольких одновременно запущенных скриптов? Существует некий глобальный массив, к которому обращаются все скрипты (запись/чтение) в хаотичном порядке. База, файлы, локальное хранилище?
Возможно для этого существуют какие-либо классы/расширения? Спасибо.
Слишком общая формулировка. конкретизируйте задачу. А вообще вариантов масса - это может быть и база и файлы, либо какая-нибудь AMQP-штука.
Что касается последнего, то можно посмотреть в сторону RabbitMQ
З.Ы.
php имеет реализацию AMQP -
http://www.php.net/manual/ru/book.amqp.php
dr.nomore
11.11.2013 - 15:03
Существуют файлы.
Exeplor
21.01.2014 - 18:49
Система была реализована с помощью файлов (lock, read, write, unlock). Вариант рабочий, но не стабильный.
В теории данных может быть большое количество. В связи с этим скорость чтения файлов очень падает (при увеличении данных).
Суть глобального массива состоит в возможсти установить блокировку на момент чтения и записи данных одним скриптом. Данный метод позволяет реализовать межскриптовый array_shift, к примеру.
Valick
21.01.2014 - 19:49
Цитата |
Вариант рабочий, но не стабильный. |
это проблемы автора
скрипта, где гарантии что сделано все правильно?
По описанной вами задаче БД нормально подходит
_____________
Стимулятор ~yoomoney - 41001303250491
Exeplor
21.01.2014 - 20:12
Цитата |
это проблемы автора скрипта, где гарантии что сделано все правильно? |
Гарантий нет. В рамках задачи база исключена, к сожалению.
Буду рад услышать тех кто сталкивался с подобной задачей.
sergeiss
21.01.2014 - 20:16
Почему база исключена? Что за задача такая?
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
linker
21.01.2014 - 21:02
Если свой сервак, то предложу очередь сообщений. Если хочется заморочиться, то можно и RabbitMQ, но можно обойтись и стандартными функция PHP:
msg_get_queue(), msg_send(), msg_receive() и пр.
_____________
Gear FrameworkGear Framework на Github
nikolaevevge
9.04.2014 - 01:22
Чтобы стандартные функции php (такие как msg_get_queue(), msg_send(), msg_receive() ) заработали помнится мне на CentOs 6 пришлось поставить process (yum install process)
На деле очень мощная штука. На мой взгляд самая удобная штука для межскриптового оперативного взаимодействия. Единственное что описания на русском всё ещё маловато. Даже на хабре ничего особо нет.
nikolaevevge
9.04.2014 - 01:24
Ещё один из способов решения данной задачи использовать кэш. Например в APC есть стандартные функции для этого
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.