【问题标题】:Magento Cronjob at specific time does not workMagento Cronjob 在特定时间不起作用
【发布时间】:2014-06-04 10:15:55
【问题描述】:

我创建了一个带有可配置 cronjob 的 Magento 扩展。路径和时间保存在 core_config_data 中。

如果我直接在数据库中将时间更改为一分钟间隔,则 cronjob 可以工作。例如 */5 * * * * 每 5 分钟有效一次。

但是,如果我在每天 10:20 使用特定时间,例如 20 10 * * *,则 cronjob 不起作用,并且不会在 cron_schedule 表中列出。

知道可能是什么问题吗?

谢谢!

<?xml version="1.0"?>

<config>
    <modules>
        <Dgroup_Emailexport>
            <version>0.1.0</version>
        </Dgroup_Emailexport>
    </modules>
    <global>
        <models>
            <Emailexport>
                <class>Dgroup_Emailexport_Model</class>
            </Emailexport>
        </models>
        <helpers>
            <Emailexport>
                <class>Dgroup_Emailexport_Helper</class>
            </Emailexport>
        </helpers>
    </global>

    <crontab>
        <jobs>
            <dgroupemailexportcron>
                <run>
                    <model>Emailexport/exportMail::sendExport</model>
                </run>
            </dgroupemailexportcron>
        </jobs>
    </crontab>

    <adminhtml>
        <acl>
            <resources>
                <all>
                    <title>Allow Everything</title>
                </all>
                <admin>
                    <children>
                        <system>
                            <children>
                                <config>
                                    <children>
                                        <dgroup>
                                            <title>dgroup - All</title>
                                        </dgroup>
                                    </children>
                                </config>
                            </children>
                        </system>
                    </children>
                </admin>
            </resources>
        </acl>
    </adminhtml>
    <default>
        <dgroup>
            <dgroup_group>               
                <dgroup_domain>example.org</dgroup_domain>        
            </dgroup_group>       
        </dgroup>
    </default>
</config>

【问题讨论】:

  • 放入config.xml文件代码
  • 添加了 config.xml。我使用的可配置 cronjob 的教程在这里:inchoo.net/ecommerce/magento-configurable-cron 我还尝试每小时运行一次 cron。它工作正常。只是特定的时间是行不通的。
  • Magento 不会为cron_schedule 表生成所有任务。它只生成将在下一个短时间内运行的任务(默认情况下,它会在接下来的 15 分钟内生成任务)。所以,可能是你的日程安排时间太远了。
  • 我自己考虑过这个,但我也尝试了仅提前 5 分钟的特定时间:/

标签: magento cron magento-1.5 cron-task


【解决方案1】:

我已经修改了 config.xml.check 这个

<?xml version="1.0"?>

<config>
    <modules>
        <Dgroup_Emailexport>
            <version>0.1.0</version>
        </Dgroup_Emailexport>
    </modules>
    <global>
        <models>
            <emailexport>
                <class>Dgroup_Emailexport_Model</class>
            </emailexport>
        </models>
        <helpers>
            <emailexport>
                <class>Dgroup_Emailexport_Helper</class>
            </emailexport>
        </helpers>
    </global>
    <crontab>
        <jobs>
            <my_cron>
                <schedule>
                    <cron_expr>20 10 * * * </cron_expr>
                </schedule>
                <run>
                    <model>emailexport/emailexport::sendExport</model>
                </run>
            </my_cron>
        </jobs>
    </crontab>

    <adminhtml>
        <acl>
            <resources>
                <all>
                    <title>Allow Everything</title>
                </all>
                <admin>
                    <children>
                        <system>
                            <children>
                                <config>
                                    <children>
                                        <dgroup>
                                            <title>dgroup - All</title>
                                        </dgroup>
                                    </children>
                                </config>
                            </children>
                        </system>
                    </children>
                </admin>
            </resources>
        </acl>
    </adminhtml>
    <default>
        <dgroup>
            <dgroup_group>               
                <dgroup_domain>example.org</dgroup_domain>        
            </dgroup_group>       
        </dgroup>
    </default>
</config>

sendExport 的文件位置是 Dgroup&gt;Emailexport&gt;Model&gt;Emailexport.php

【讨论】:

  • 我无法在配置中手动设置 cron_expor。关键是我想要一个可在管理面板中配置的 cronjob。 xml 中不应有 cron_expor 节点,因为 cron.php 必须从 core_config_data 收集信息。否则无法创建可配置的 cronjob。 cron.php 确实从 core_config_data 收集时间。如果我使用每分钟、每小时等时间,效果会很好。但具体时间不起作用。
【解决方案2】:

取决于您何时测试它。默认情况下,magento 仅提前 20 分钟安排任务。增加这个值可以帮助你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 2013-05-09
    • 2020-08-14
    • 2021-07-05
    • 2021-05-02
    • 2018-02-26
    相关资源
    最近更新 更多