За последние 24 часа нас посетили 17384 программиста и 1719 роботов. Сейчас ищут 958 программистов ...

Отложенное обновление базы, по заданному расписанию

Тема в разделе "PHP для новичков", создана пользователем Alexnewaro, 15 мар 2015.

  1. Alexnewaro

    Alexnewaro Активный пользователь

    С нами с:
    8 фев 2015
    Сообщения:
    109
    Симпатии:
    1
    Приветствую!

    А не подскажите ли, кто знает, каким образом может быть реализован механизм отложенной записи в базу MySql через PHP?
    Точнее понимаю, что информацию из формы можно записать в отдельную таблицу, присвоить ей дату исполнения (например добавления в основную таблицу).
    Но какой механизм отслеживает выполнение?
    Или это должен быть какой-нибудь мускульный create event или еще что-то?

    Заранее спасибо, а то интернет то ли меня не понимает, то ли редко используемая задача.
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    А менее абстрактно и сферически?
     
  3. Alexnewaro

    Alexnewaro Активный пользователь

    С нами с:
    8 фев 2015
    Сообщения:
    109
    Симпатии:
    1
    Спасибо за желание помочь.

    Есть такая задача - занести прайс торговых объектов в базу.

    Сложность в том, что в течение года цены меняются (известны заранее сроки смены цен и сами новые цены), а объектов - 160 штук. И даты смены цен у каждого - свои.
    Соответственно, если ставить себе задачей ручное обновление прайсов в соответствии с графиком смены цен, то весь год так и просидишь за постоянным обновлением.

    Куда проще, как мне кажется, забить прайс, затем забить его же с новыми ценами, но установить срок, в который выполнится запрос в базу и данные обновятся.
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Cron в помощь, так вижу.
     
  5. Alexnewaro

    Alexnewaro Активный пользователь

    С нами с:
    8 фев 2015
    Сообщения:
    109
    Симпатии:
    1
    Ну напрашивается, но упарюсь же настраивать и прописывать, 320 обновлений в течении года...

    Решил, что наверняка есть способ проще. Ведь у многих CMS есть функция - новость на определенную дату. Ввел данные и в эту дату - триггер сработает.

    Вот ищу мысли по этому поводу.
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Ты ведь знаешь, что такое Cron, верно?
    Что значит настраивать и прописывать? Один раз напиши скрипт себе, который будет брать ведомость и обновлять из нее значения в базе. И скажи крону, чтобы дергал в назначенный час\день\год его.
     
  7. Alexnewaro

    Alexnewaro Активный пользователь

    С нами с:
    8 фев 2015
    Сообщения:
    109
    Симпатии:
    1
    Спасибо за совет, я хотел избежать cron'а, в надежде на более быстрый путь :) Но видимо вы правы.
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Сорь, но кнопку "прочитать мысли и сзедать "залюбись" пока что либо не создали, либо не рассекретили".
     
  9. Alexnewaro

    Alexnewaro Активный пользователь

    С нами с:
    8 фев 2015
    Сообщения:
    109
    Симпатии:
    1
    Но когда ее создадут или рассекретят - кто-то должен будет в первый раз спросить, чтобы пролить свет на этот факт :) :) :)
     
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    В CMS, насколько я видел, публикация новости в определенный момент это не "отложенное обновление". Просто из списка новостей показываются те, дата которых <= сейчас. Пока дата новости в будущем, она не видна )))

    Ну цены наверное действительно проще кроном накатывать. Иначе придется писать свой аналог крона, вряд ли это более "быстрый путь" )))

    Я бы так сделал: через крон раз в день проверять определенную папку на наличие файла(ов) с именем, образованным от текущей даты. Например в CSV формате: "200150316.csv". При обнаружении файла выполнять обновление. Саму папку с обновлениями поместить в VCS для большего контроля. Чем хорош этот путь — не потребуется ничего усложнять в самой торговой системе.
     
  11. Alexnewaro

    Alexnewaro Активный пользователь

    С нами с:
    8 фев 2015
    Сообщения:
    109
    Симпатии:
    1
    Спасибо за идею, буду реализовывать.
    А столь простой механизм системы отображения отложенных новостей в CMS мне в голову не приходил, еще одно спасибо :)