所以我知道如何使用config.xml crontab设置一个cron:
<crontab>
<jobs>
<millena_export_send_all>
<schedule><cron_expr>* * * * *</cron_expr></schedule>
<run><model>millena_export/observer::exportOrderData</model></run>
</millena_export_send_all>
</jobs>
</crontab>
Run Code Online (Sandbox Code Playgroud)
但我感到困惑的是如何使cron_expr成为后端中可以更改的设置(每5分钟,每10分钟等).我想我可以使用backend_model然后在after_save方法中我可以做setStoreConfig('path/to/schedule/cron_expr','*/5****')或类似的东西,它将保存在缓存.我的想法是否正确?有一个更好的方法吗?
Lee*_*ite 24
更好的解决方案,不涉及自定义后端模型.
config.xml中
<?xml version="1.0"?>
<config>
<modules>
<Company_Export>
<version>0.1.0</version>
</Company_Export>
</modules>
<global>
<models>
<company_export>
<class>Company_Export_Model</class>
</company_export>
</models>
</global>
<default>
<export>
<order>
<cron_settings>*/5 * * * *</cron_settings>
</order>
</export>
</default>
<crontab>
<jobs>
<company_export_send_order>
<schedule>
<config_path>export/order/cron_settings</config_path>
</schedule>
<run>
<model>company_export/observer::exportOrderData</model>
</run>
</company_export_send_order>
</jobs>
</crontab>
</config>
Run Code Online (Sandbox Code Playgroud)
的system.xml
<?xml version="1.0"?>
<config>
<tabs>
<feedsconfig translate="label" module="export">
<label>Feeds Configuration</label>
<sort_order>99999</sort_order>
</feedsconfig>
</tabs>
<sections>
<export translate="label" module="export">
<label>Export</label>
<tab>feedsconfig</tab>
<frontend_type>text</frontend_type>
<sort_order>10000</sort_order>
<show_in_default>1</show_in_default>
<groups>
<order translate="label">
<label>Order</label>
<frontend_type>text</frontend_type>
<sort_order>2</sort_order>
<show_in_default>1</show_in_default>
<fields>
<cron_settings>
<label>How often do you want the cron to run?</label>
<frontend_type>text</frontend_type>
<sort_order>40</sort_order>
<comment>Use Crontab Format (Eg. "*/5 * * * *" for every 5 minutes)</comment>
<show_in_default>1</show_in_default>
</cron_settings>
</fields>
</order>
</groups>
</export>
</sections>
</config>
Run Code Online (Sandbox Code Playgroud)