2010-02-20 2 views
0

Для выполнения нескольких сценариев PHP (от 10 до 100) для обмена сообщениями, что является наименее интенсивным для памяти решением?Передача данных между запущенными скриптами PHP

  • файлы монитора плоские для изменения
  • Keep выполнения запросов на БД, чтобы проверить новые данные

Другие методы, которые я слышал о, но никогда не пробовали:

  • Общая память (APC или основные функции)
  • Очереди сообщений (Active MQ и компания)
+0

Сколько скриптов? всего пару или много и много из них? – Joelio

+0

От 10 до 100 скриптов? –

+0

На какой ОС/платформа? Вы задаете вопрос о IPC (межпроцессное общение), возможности для этого сильно меняются в зависимости от того, что на самом деле работает PHP. –

ответ

2

В общем случае решение с общей памятью будет самым быстрым и иметь наименьшие издержки в большинстве случаев. Если вы можете использовать его, сделайте это.

Очереди сообщений Я мало что знаю, но когда выбор между базами данных и плоскими файлами, я бы выбрал базу данных из-за проблем с параллелизмом.

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

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

+0

Большое спасибо! Именно ответ, который я искал, да, я бы предпочел БД вместо общей памяти, так как данные будут сохраняться независимо от того, что происходит с машиной. –

+0

@Jeremy: Именно то, что вы искали? :) –

2

Это трудно ответить, не зная:

  • Сколько данных они будут посылать в каждом сообщении (2 байта или 4 мегабайта)?
  • Будут ли они работать на одной машине? (Это похоже на да, иначе вы не будете рассматривать общую память)
  • Каковы требования к производительности (одно сообщение в минуту или миллион в секунду)?
  • Какой ресурс наиболее важен для вас?

И так далее ...

Использование БД, вероятно, проще всего установить в PHP среде и, в зависимости от того, сколько запросов в минуту и ​​тип этих запросов, которые могут действительно быть здравомыслящий решение. Лично я попробую это сначала, а потом посмотрю, недостаточно ли этого.

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

Смежные вопросы