我们有Magento 1和一个提供者,我们只为cronjob输入了cron.php文件的路径。 示例:anyname.com/cron.php
现在Magento 2出来了,我发现cron.php文件现在位于/ pub或/ update文件夹中。所以我输入了启用.htaccess的anyname.com/update/cron.php或anyname.com/pub/cron.php:
## Deny access to cron.php
# <Files cron.php>
# order allow,deny
# deny from all
# </Files>
尝试做cronjob出来了:
/vendor/magento/module-cron/Observer/ProcessCronQueueObserver.php:173 Stack
trace: #0
/vendor/magento/framework/Event/Invoker/InvokerDefault.php(73): Magento\Cron\Observer\ProcessCronQueueObserver->execute(Object(Magento\Framework\Event\Observer)) #1
/vendor/magento/framework/Event/Invoker/InvokerDefault.php(61): Magento\Framework\Event\Invoker\InvokerDefault->_callObserverMethod(Object(Magento\Cron\Observer\ProcessCronQueueObserver), Object(Magento\Framework\Event\Observer)) #2
/vendor/magento/framework/Event/Manager.php(66): Magento\Framework\Event\Invoker\InvokerDefault->dispatch(Array, Object(Magento\Framework\Event\Observer)) #3
/var/generation/Magento/Framework/Event/Manager/Proxy.php(95): Magento\Framework\Event\Manager->dispatch('default', Array) #4
/vendor/magento/module-cron/Observer/ProcessCronQueueObserver.php on line 173
答案 0 :(得分:1)
要在Magento 2中执行CRON作业,Magento 2为此提供了CLI, 您必须从Magento 2根目录设置命令以启动所有Magento默认Cron
php bin/magento cron:run
0 0 * * * /usr/bin/php /var/www/html/magento_root/php bin/magento cron:run >/dev/null 2>&1
请参阅Magento 2文档。 Magento 2 CRON DevDocs
答案 1 :(得分:0)
要在magento 2中运行cronjobs,您应该执行以下操作:
这将在crontab中设置cron
bin/magento cron:install
清理缓存
bin/magento cache:flush
然后使用特定的组运行cron
bin/magento cron:run --group="default"
答案 2 :(得分:0)
首先要在magento 2中创建任何cron作业,您需要在etc文件夹下创建crontab.xml文件。 在该文件中创建xml文件后,您需要提及您要在特定时间执行的类名,时间和函数。 group_name是用户选择的名称,您可以使用现有的组,也可以创建自己的组。
示例
<config>
<group id="<group_name>">
<job name="<job_name>" instance="<classpath>" method="<method>">
<schedule><time></schedule>
</job>
</group>
</config>
答案 3 :(得分:-1)
在cli中尝试:php bin / magento cron:run
答案 4 :(得分:-1)
您的问题是您没有阅读文档。在m2中你应该通过cli执行cron,这是bin / magento cron:run。