Используйте один и тот же блок общей памяти из Lua и PHP.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Используйте один и тот же блок общей памяти из Lua и PHP.

Сообщение Anonymous »

Самое близкое к исследованию — это stdin, stdout. Но я не понимаю, как можно объединить два процесса. Я думаю, что если я запускаю команды последовательно в одном и том же сеансе терминала, это можно сделать, но я не вижу, как адаптировать это к моему варианту использования. Возможно, я прошу невозможного, поэтому не нашел ответа.
У меня есть программное обеспечение, которое использует Lua для анализа данных и может выводить JSON; В настоящее время я записываю это в файл .json.
Затем веб-страница в формате .html или .php, работающая на локальном хосте через встроенный php-сервер (например, php -s localhost:8001 ) или что-то еще, может прочитать этот файл .json.
Если я хочу, чтобы первая программа записывала новый вывод каждую секунду, это похоже на сгорание чрезмерной записи на диск. 86400 пишет в день - где-то размер файла до 30 кб, что соответствует моим более высоким ожиданиям. И веб-страница продолжает читать ее неоднократно, чтобы получать обновления практически в реальном времени. Могу ли я обеспечить передачу данных только в ОЗУ между двумя программами?
Может быть, я слишком много думаю, и это спорно, поскольку современное оборудование прослужит десятилетия, даже если его переписывать снова и снова каждые второй. Если это так, я могу принять этот ответ и не беспокоиться о решении этой межъязыковой кросс-процессной головоломки.
Я могу заставить stdin/out работать только в одном и том же терминале, например в Python (еще не разобрался с lua stdin/out, но это не должно быть сложно), и я могу перенаправить этот стандартный вывод в файл, чтобы затем получить доступ к другой программе, но я понятия не имею, как передать его непосредственно на веб-страницу. Я считаю, что лучше всего использовать PHP.
Этот код не работает. Я создал полноценный пример, основываясь на комментариях Роберта, который связал обсуждение/документацию по lua и php. Обратите внимание: это независимые источники, поэтому...
producer.lua

Код: Выделить всё

local shmem = require("shmem")
local mem = shmem.new(1024)
body = "some kind of test"
mem:write(body)
consumer.php

Код: Выделить всё


Подробнее здесь: [url]https://stackoverflow.com/questions/79283803/use-same-shared-memory-unit-from-lua-and-php[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»