Я работаю над развертыванием magento с главной целью , упрощая создание продукта .
По сути, у нас есть несколько очень трудоемких вызовов в бэк-энде, которые должны выполняться асинхронно, чтобы пользователь мог продолжать работу.
- Первым делом я использовал
AJAX
, чтобы отправить данные в трудоемкий сценарий и переместить пользователя через javascript
.
Это несколько работает, но magento-сессии кажутся зависимыми от php-сессий - насколько я вижу, у пользователя будет сессия, созданная в каталоге, указанном в php.ini
, и одна, созданная в magento/var/session
.
Поскольку этот php-сеанс основан на файлах, я не смогу получить никакого ответа от сервера во втором запросе (перенаправление) или любых других запросов в том же сеансе до первого вызова (сценарий, вызываемый ajax
) закончил
- Мое решение этого состояло в том, чтобы записать в кэш эти файлы сеанса (наряду с magento), чтобы разрешить эти асинхронные вызовы.
Однако magento не может распознать эти сеансы теперь, когда они хранятся в memcache.
Почему это?
Я бы подумал, что он использовал стандартные функции php при доступе к этим сеансам - хотя я не могу найти ни одну из этих функций в исходном коде, но они должны быть вызваны каким-то образом.
Я успешно проверил, что сессии могут быть сохранены и загружены правильно.
Я не получаю сообщений об ошибках, и журнал пуст.
Есть идеи, почему magento не может справиться с этим?
Является ли это даже приемлемым подходом для выполнения этих асинхронных вызовов, или есть намного лучшее решение?
TL; DR
Стандартные сессии php хранятся с использованием memcache. Кажется, Magento не узнает их. Почему это?