Возможно ли иметь функцию без учета времени?
-
05-07-2019 - |
Вопрос
Я пытаюсь установить напоминание в системе для срабатывания в определенное время.
Это веб-приложение, поэтому оно не всегда будет в памяти.
В идеале я бы хотел избежать использования службы или задания на сервере (в основном из любопытства, чтобы посмотреть, есть ли более эффективный способ сделать это)
Например, представьте, сколько предложений Ebay постоянно заканчивается, а электронные письма отправляются, по-видимому, идеально вовремя.
Люди понимают, что есть большой цикл, повторяющийся снова и снова, перемещающий элементы в очередь и т. д. ... Или есть что-то более низкое, помогающее (хранимые процедуры, триггеры и т. д.)
Спасибо всем.
Решение
Что вы должны понимать в отношении eBay - и большинства крупных веб-сайтов, поддерживаемых базой данных, - это то, что взаимодействия между людьми и базой данных, которые проходят через веб-сервер, являются лишь частью (иногда очень малой частью) функциональности система.
Чтобы использовать eBay в качестве примера, электронное письмо, которое отправляется по истечении аукциона, не обрабатывается веб-сервером. У них гораздо больше шансов, что это будет написано. Другими словами, на ряде их систем запущена другая программа, которая просматривает базу данных на предмет завершенных аукционов, обрабатывает их, отправляет электронные письма и т. Д.
Если бы я делал что-то подобное (хотя и в гораздо меньших масштабах), мои веб-службы были бы построены обычным способом, но у меня была бы задача, которая запускалась автоматически каждые несколько минут для выполнения работ по обслуживанию. Он запускается, просматривает базу данных для работы, обрабатывает все, что требуется, затем завершает работу. Р>