Export file problem in Magento 2.3
-
13-04-2021 - |
質問
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
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'
]
],