У меня есть процесс, в котором программа, работающая на сервере приложений, должна обращаться к таблице на сервере базы данных Oracle, когда по крайней мере одна строка существует в этой таблице. Каждая строка данных относится к клиенту, запрашивающему некоторый хруст числа, выполняемый программой. Программа может выполнять этот цикл только последовательно (то есть для одного клиента одновременно, а не для нескольких клиентов параллельно).Опрос базы данных по сравнению с запуском программы из базы данных?
Таким образом, программа должна быть проинформирована о том, когда данные доступны в базе данных для ее обработки. Я мог бы либо
- есть программа опроса базы данных или
- есть база данных вызвать программу.
ВОПРОС 1: Есть ли общепринятая мудрость, почему один подход может быть лучше, чем другой?
ВОПРОС 2: Интересно, работают ли какие-либо проблемы в течение нескольких месяцев (будут ли какие-либо процессы на сервере останавливаться или прерывать работу программы?), Если я не знаю, как бы я работал узнайте, что есть проблема, если только от сердитых клиентов). У кого-нибудь есть опыт работы с программами на сервере в течение длительного времени без проблем? Или, если сервер аварийно завершает работу, есть ли способ автоматически запускать на нем программу (то есть C-исполняемый язык) после перезагрузки сервера, не требуя, чтобы человек начал ее конкретно?
Любые советы, оцененные.
ОБНОВЛЕНИЕ 1: Клиент ожидает результатов, но задержка в несколько секунд (от опроса) не является выключателем сделки.
Насколько мне известно, «в зависимости от того, насколько хорошо написана программа» должно быть «если программа написана правильно или нет». Утечка памяти - ошибка. Вы не должны принимать проектные решения на основе потенциальных ошибок. –
2) не имеет смысла. Нет такой вещи, как «программа С»; есть только программы. C - это язык, на котором вы можете создать программу, но после ее компиляции программа является программой. Если ваша ОС может запускать программы, тогда она также может запускать «C-программы», и если она сообщит вам, что она убьет их через 30 минут, тогда она убьет их независимо от того, написаны ли они на C или нет. Тем не менее, если вы напишете ужасный код, вы можете заставить программы умереть после того, как они запустили определенное время, потребляя слишком много ресурсов. –
@ Kerrek только что отредактировал, чтобы удалить ссылку на C, так как вопрос на самом деле не зависит от языка. –