У меня есть несколько идей по этому поводу, но вот что мне нужно сделать, и мне просто хотелось получить второе мнение.
Я пишу небольшой сайт аукциона в PHP / SQL, но я столкнулся с препятствием.
Когда элемент заканчивается, как eBay, мне нужно сказать, что он закончен и отправил электронные письма тому, кто его выиграл, и кто его продал.
Единственный способ, о котором я могу думать, – запланировать часть кода, чтобы проверить, какие аукционы закончились, но, конечно, есть лучший способ?
Пожалуйста, будьте добры, чтобы поделиться сценарием SQL, который запрашивает самую высокую цену на основе даты окончания торгов (как узнать, что торги закончены) и присудить продукт самой высокой цене
Решение может быть в нескольких частях:
Скрипт , запускаемый через Cron (каждые 5 минут может быть хорошим, даже меньше …). Он обнаруживает законченный аукцион и помещает их в очередь .
Скрипт , который в значительной степени работает непрерывно , и обрабатывает элементы в очереди .
Обратите внимание, что :
Преимущества :
Дополнительная информация:
Чтобы проверить, работает ли другой скрипт, вы можете использовать файл и записать в него «1» или «0» (= запуск / не работает). Первый скрипт читает его, второй пишет … Вы также можете использовать базу данных для этого. Или вы можете использовать системные инструменты или команду оболочки …
Я бы установил задание cron для запуска каждые 10-20-30-60 минут и т. Д., Чтобы отправлять электронные письма и обновлять информацию о аукционе.
Если вы используете скрипт быстро, запуск его каждую минуту может быть в порядке.
Имейте в виду, что многие общедоступные хостинга позволят вам отправлять определенное количество писем в час.
Нужно ли немедленно отправлять эти электронные письма ?,
Я вижу две возможные проблемы и цели, которые вы пытаетесь достичь:
if (time() >= ($timestamp + $duration)) {}
метку начала прослушивания, а затем сделать простой if (time() >= ($timestamp + $duration)) {}
(где $timestamp
– начало прослушивания, а $duration
– продолжительность прослушивания), чтобы заблокировать возможных плохих пользователей, пытающихся это сделать.