Как сохранить состояние сервера приложения CGI? - PullRequest
0 голосов
/ 09 февраля 2010

У меня есть веб-программа cgi (на C), которая выводит различные сообщения об ошибках в файл журнала. Если программа запускается снова и сталкивается с той же самой ошибкой, я не хочу, чтобы то же самое сообщение об ошибке регистрировалось снова. Я смотрю на разные варианты, и любые советы приветствуются. Спасибо.

-Cookie: невозможно установить cookie после распечатки раздела html <head>.
(После того, как заголовок раздела, где могут возникнуть ошибки.)

-Database: не один. Слишком много накладных расходов для установки этой проблемы.

-Пародный файл журнала: многие другие процессы записывают в этот файл журнала.

-Ввод скрытой формы в HTML-файл: кажется грязным. Иметь 3 разных форм на одной HTML-странице. Как я могу убедиться, что скрытые поля всегда отправляются независимо от того, какая форма отправлена? Но одна из ошибок - это когда HTML не может быть создан, поэтому не может зависеть от этого.

Спасибо.

Ответы [ 4 ]

1 голос
/ 09 февраля 2010

Использование memcached может быть способом сохранения состояний в разных сеансах.

1 голос
/ 09 февраля 2010

Другим вариантом является создание какой-либо формы временного файла везде, где вы можете (не уверен насчет разрешений) и чтение, предварительно выполняя любую работу. Просто перечислите типы ошибок и, возможно, время там, возможно? Это предполагает, что вы хотите сохранить это поведение при запуске вашей программы. На самом деле это решение для базы данных без базы данных, поэтому я не уверен, насколько это полезно.

Когда бы я ни упоминал о решениях для баз данных без баз данных, я всегда должен упоминать SQLite , который представляет собой файловый серверный SQL-сервер.

1 голос
/ 09 февраля 2010

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

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

1 голос
/ 09 февраля 2010

Хранение встроенной страницы в переменной и вывод ее в конце позволит вам создать заголовок в любое время до этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...