Как я могу запустить фоновую службу в бэкэнде администратора?


Я заметил следующее в Mage_GoogleShopping:

  • Я могу добавлять товары в Google
  • Теперь отображается информация "Выполняется синхронизация"
  • Я могу покинуть серверную страницу, и если я вернусь позже, процесс был завершен.

Как это может быть реализовано в собственном расширении?

Я не думаю, что это выполняется заданием cron на стороне сервера, потому что задание, похоже, начинается очень скоро после того, как я нажму "отправить".

И это невозможно сделать в процесс веб-сервера, потому что я могу закрыть браузер, и он продолжит свою работу.

Author: Marius, 2013-01-31

2 answers

Скорее всего, ключ находится в строке 123 controllers/Adminhtml/Googleshopping/ItemsController.php:

ignore_user_abort(true);
 9
Author: user487772, 2013-01-31 19:37:10

Я никогда не смотрел на Mage_GoogleShopping, но, насколько я знаю, закрытие браузера не остановит обрабатываемый запрос ( это подтвердило бы мое предположение), поэтому было бы просто реализовать вызов ajax, который запустил бы синхронизацию и вернул ответ, когда он закончится, чтобы браузер мог показать его пользователю.

 1
Author: Domen Vrankar, 2017-05-23 12:37:12