Как я могу запустить фоновую службу в бэкэнде администратора?
Я заметил следующее в Mage_GoogleShopping
:
- Я могу добавлять товары в Google
- Теперь отображается информация "Выполняется синхронизация"
- Я могу покинуть серверную страницу, и если я вернусь позже, процесс был завершен.
Как это может быть реализовано в собственном расширении?
Я не думаю, что это выполняется заданием cron на стороне сервера, потому что задание, похоже, начинается очень скоро после того, как я нажму "отправить".
И это невозможно сделать в процесс веб-сервера, потому что я могу закрыть браузер, и он продолжит свою работу.
2 answers
Скорее всего, ключ находится в строке 123 controllers/Adminhtml/Googleshopping/ItemsController.php
:
ignore_user_abort(true);
Я никогда не смотрел на Mage_GoogleShopping, но, насколько я знаю, закрытие браузера не остановит обрабатываемый запрос ( это подтвердило бы мое предположение), поэтому было бы просто реализовать вызов ajax, который запустил бы синхронизацию и вернул ответ, когда он закончится, чтобы браузер мог показать его пользователю.