سؤال

enter image description here

Error: "Message is added to queue, wait to get your file soon"

enter code here Open admin panel/system/Data Transfer/Export

After that select all export setting and click the continue button.

When clicking on the continue button above the error show.

Why files are not export? How to export files?

Please suggest.

Thank you so much.

هل كانت مفيدة؟

المحلول

You have to run cron by command line as mentioned here: php bin/magento cron:run

https://github.com/magento/magento2/issues/23450#issuecomment-507581035

Then refresh the export page and you should see the file at the bottom.

نصائح أخرى

If your var/importexportxxx file is blank try;

php bin/magento queue:consumers:start exportProcessor

https://github.com/magento/magento2/issues/23450

Replace this below code in app/code/Magento/ImportExport/Controller/Adminhtml/Export/Export.php File


This code is working in my application

public function execute()
{
    if ($this->getRequest()->getPost(ExportModel::FILTER_ELEMENT_GROUP)) {
        try {
            $params = $this->getRequest()->getParams();
            $model = $this->_objectManager->create(\Magento\ImportExport\Model\Export::class);
            $model->setData($this->getRequest()->getParams());
            $this->sessionManager->writeClose();

            return $this->fileFactory->create(
                $model->getFileName(),
                $model->export(),
                \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR,
                $model->getContentType()
            );

            /** @var ExportInfoFactory $dataObject */
            $dataObject = $this->exportInfoFactory->create(
                $params['file_format'],
                $params['entity'],
                $params['export_filter']
            );

            $this->messagePublisher->publish('import_export.export', $dataObject);
            $this->messageManager->addSuccessMessage(
                __('Message is added to queue, wait to get your file soon')
            );
        } catch (\Exception $e) {
            $this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e);
            $this->messageManager->addError(__('Please correct the data sent value.'));
        }
    } else {
        $this->messageManager->addError(__('Please correct the data sent value.'));
    }
    /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
    $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
    $resultRedirect->setPath('adminhtml/*/index');
    return $resultRedirect;
}

Adding on to what Andrew Taylor said, you can add the exportProcessor consumer (and others) to cron by adding the following to your app/etc/env.php file:

    'cron_consumers_runner' => [
        'cron_run' => true,
        'max_messages' => 20000,
        'consumers' => [
            'async.operations.all',
            'codegeneratorProcessor',
            'exportProcessor',
            'product_action_attribute.update',
            'product_action_attribute.website.update'
        ]
    ],
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top