- Автор темы
- #1
Переделываю доску объявлений и хочу реализовать функцию, чтобы объявление убиралось по наступлению определенной даты. И тут возник вопрос, как сделать это, чтоб было меньше всего нагрузки на сайт. Хотелось бы узнать ваше мнение, может там все проще чем я думаю. Дата публикации и дата снятия с публикации хранятся в бд. Поле статус (на модерации, опубликовано, просрочено) тоже.
Мои варианты:
1. Когда любой пользователь заходит посмотреть доску объявлениий, перед их выводом сравниваются дата публ. и дата снятия и снимаются последовательно все просроченные. (делается запрос в бд на изменение статуса каждого) Минусы - большая нагрузка на сайт.
2. Также каждый раз просматривать обявление со сравнением даты и просто не выводить просроченные. Минус - в админ панели нельзя посмотреть статус (просрочено или опубликовано? будет всегда опубликовано)
3. Менять статусы раз день при заходе пользователя в доску (т.к. срок все равно измеряется в днях и можно постоянно не менять статусы). Тоже нагружается сайт, но лучше чем в 1.
Может есть более легкий способ?
Мои варианты:
1. Когда любой пользователь заходит посмотреть доску объявлениий, перед их выводом сравниваются дата публ. и дата снятия и снимаются последовательно все просроченные. (делается запрос в бд на изменение статуса каждого) Минусы - большая нагрузка на сайт.
2. Также каждый раз просматривать обявление со сравнением даты и просто не выводить просроченные. Минус - в админ панели нельзя посмотреть статус (просрочено или опубликовано? будет всегда опубликовано)
3. Менять статусы раз день при заходе пользователя в доску (т.к. срок все равно измеряется в днях и можно постоянно не менять статусы). Тоже нагружается сайт, но лучше чем в 1.
Может есть более легкий способ?