Как удалить таблицу по событию?

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 vatseek
  • Группа: Пользователь
  • Сообщений: 11
  • Регистрация: 16.01.2012

16.01.2012 20:00

Люди, помогите пожалуйста, подскажите event (если такой имеется) который бы гарантировано отрабатывал на фронтенде, куда можно вложить функцию удаление таблицы, желательно чтобы он отрабатывал в конце ну или почти в конце обработки данных сервером, дабы отсутствие таблицы не вызывало ошибок.
Пробовал вызывать функцию в конце самого шаблона, не подходит.
Решение с TEMPORARY TABLE не предлагать .. :)

З.Ы. Звиняюсь за ... слов, не могу сформулировать по-человечески. Спасибо.

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

16.01.2012 20:02

В чём заключается прикладная цель удаления таблицы?

#3 vatseek
  • Группа: Пользователь
  • Сообщений: 11
  • Регистрация: 16.01.2012

17.01.2012 10:39

В ней содержаться id продуктов которые будут отображаться в модуле, но дело в том, что эта таблица участвует также в другом модуле, а порядок обработки этих модулей почему то бывает разный, вот и получаться, что я не знаю точно когда можно удалять таблицу. А использовать темповую таблицу я не могу, так как в неком запросе ее приходиться джоинить несколько раз, под разными алиасами соответственно. Вот и хочу повесить свое удаление таблицы как можно позже и, по моему .. какой то event аля page_load_after для этих целей подходит как нельзя лучше. Так сказать дешево и сердито.

А почему именно удаление а не просто очистка таблицы. Это потому , что пустая таблица это тоже результат и если во время работы первого модуля в ней будет, к примеру, три записи , а при роботе второго уже пустая , будет несоответствие данных.

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

17.01.2012 10:41

«В ней содержаться id продуктов которые будут отображаться в модуле, но дело в том, что эта таблица участвует также в другом модуле, а порядок обработки этих модулей почему то бывает разный, вот и получаться, что я не знаю точно когда можно очищать таблицу.»

А какова связь в этом предложении между фактом содержания в таблице идентификаторов товаров и фактом необходимости очистки таблицы?

#5 vatseek
  • Группа: Пользователь
  • Сообщений: 11
  • Регистрация: 16.01.2012

17.01.2012 10:51

Я прошу, просто принять как аксиому тот факт , что таблица должна быть удалена, по другому к сожалению нельзя, и просто подсказать мне ивент :)

#6 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

17.01.2012 10:52

А какова связь между фразами «я не знаю точно когда можно очищать таблицу» и «таблица должна быть удалена»?

#7 vatseek
  • Группа: Пользователь
  • Сообщений: 11
  • Регистрация: 16.01.2012

17.01.2012 10:56

Оговорился ... Очистить, имелось в веду Удалить, пардонте ...

#8 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

17.01.2012 10:59

И вы намерены удалять свою страницу при каждой загрузке страницы?

#9 vatseek
  • Группа: Пользователь
  • Сообщений: 11
  • Регистрация: 16.01.2012

17.01.2012 11:08

Согласен, решение не из самых "кошерных" , можно было использовать вместо этой одной, несколько временны, чтобы обойти ограничение по джоину, но по моему это ничем не лучше.
В общем то удалять эту таблицу после каждой перегрузки страницы мне не обязательно, это действительно надо сделать только тогда когда закроется текущая сессия, то есть юзер покинул сайт, или надолго отошел. Если подскажете как реализовать это вот так, будет еще лучше.

#10 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

17.01.2012 11:08

Почему бы вам не удалять таблицу по системному событию через CRON?

#11 vatseek
  • Группа: Пользователь
  • Сообщений: 11
  • Регистрация: 16.01.2012

17.01.2012 11:18

Уже думал про это. Но честно говоря, не очень хочу навешивать что-то на крон.
Так все-таки есть ли какое-либо событие позволяющее сделать такое?

#12 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

17.01.2012 11:21

А в чём преимущество навешивать событие на покупателя в магазине при загрузке им страницы, по сравнению с удалением таблицы в 4 часа утра по CRON?

#13 vatseek
  • Группа: Пользователь
  • Сообщений: 11
  • Регистрация: 16.01.2012

17.01.2012 11:28

Ладно. Уболтали :) Здаюсь. Наверное все-таки корректнее будет использовать крон .. но в таком случае, извиняюсь за наглость , подскажите как проверить актуальность сессии :)

#14 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

17.01.2012 11:29

Одна тема - один вопрос.

#15 vatseek
  • Группа: Пользователь
  • Сообщений: 11
  • Регистрация: 16.01.2012

17.01.2012 11:31

Спасибо :)

Поделиться темой: