magento2 配置自定义定时任务(cron )和计划组(cron group)教程
2017-05-29 18:10
603 查看
本教程教你一步一步的创建一个自定义的cron job(定时任务),任选一个cron group。
克隆 magento2 样本库.
示例
创建一个目录来拷贝示例代码:
复制示例模块代码:
验证文件是否正确复制:
You should see the following result:
更新Magento 2 数据库和schema:
点击 Stores > Configuration > ADVANCED >
Advanced.
如下图:
![](https://img-blog.csdn.net/20170529181101494?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHpfc3Jj/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在目录中创建了一个名为
4: 创建
在
输入
运行查询sql
输入
输入
输入
查询结果:
更改
保存.
创建
至少运行两次命令。
清除magento 2缓存:
用管理员身份登录到后台.
点击 Stores > Configuration > Advanced >System.
在右窗格中展开 Cron.
如下图:
1: 获取示例模块
登录到magento服务器,切换到 Magento 2文件系统所有者.克隆 magento2 样本库.
示例
cd ~ git clone git@github.com:magento/magento2-samples.git
创建一个目录来拷贝示例代码:
mkdir -p /var/www/html/magento2/app/code/Magento/SampleMinimal
复制示例模块代码:
cp -r ~/magento2-samples/sample-module-minimal/* /var/www/html/magento2/app/code/Magento/SampleMinimal
验证文件是否正确复制:
ls -al /var/www/html/magento2/app/code/Magento/SampleMinimal
You should see the following result:
drwxrwsr-x. 4 magento_user apache 4096 Oct 30 13:19 . drwxrwsr-x. 121 magento_user apache 4096 Oct 30 13:19 .. -rw-rw-r--. 1 magento_user apache 372 Oct 30 13:19 composer.json drwxrwsr-x. 2 magento_user apache 4096 Oct 30 13:19 etc -rw-rw-r--. 1 magento_user apache 10376 Oct 30 13:19 LICENSE_AFL.txt -rw-rw-r--. 1 magento_user apache 10364 Oct 30 13:19 LICENSE.txt -rw-rw-r--. 1 magento_user apache 1157 Oct 30 13:19 README.md -rw-rw-r--. 1 magento_user apache 270 Oct 30 13:19 registration.php drwxrwsr-x. 3 magento_user apache 4096 Oct 30 13:19 Test
更新Magento 2 数据库和schema:
php /var/www/html/magento2/bin/magento setup:upgrade
2: 验证样本模块
用管理员身份登录magento 2后台点击 Stores > Configuration > ADVANCED >
Advanced.
如下图:
3: 创建一个类来运行cron
为类创建目录并更改目录:mkdir /var/www/html/magento2/app/code/Magento/SampleMinimal/Cron && cd /var/www/html/magento2/app/code/Magento/SampleMinimal/Cron
在目录中创建了一个名为
Test.php的文件:
<?php namespace Magento\SampleMinimal\Cron; use \Psr\Log\LoggerInterface; class Test { protected $logger; public function __construct(LoggerInterface $logger) { $this->logger = $logger; } /** * Write to system.log * * @return void */ public function execute() { $this->logger->info('Cron Works'); } }
4: 创建 crontab.xml
在 /var/www/html/magento2/app/code/Magento/SampleMinimal/etc目录创建
crontab.xml:
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd"> <group id="default"> <job name="custom_cronjob" instance="Magento\SampleMinimal\Cron\Test" method="execute"> <schedule>* * * * *</schedule> </job> </group> </config>
5: 验证cron job
运行 Magento cron jobs:php /var/www/html/magento2/bin/magento cron:run
输入
magento cron:run命令
运行查询sql
SELECT * from cron_schedule WHERE job_code like '%custom%'如下:
输入
mysql -u magento -p
输入
use magento;
输入
SELECT * from cron_schedule WHERE job_code like '%custom%';
查询结果:
+-------------+----------------+---------+----------+---------------------+---------------------+---------------------+---------------------+ | schedule_id | job_code | status | messages | created_at | scheduled_at | executed_at | finished_at | +-------------+----------------+---------+----------+---------------------+---------------------+---------------------+---------------------+ | 3670 | custom_cronjob | success | NULL | 2016-11-02 09:38:03 | 2016-11-02 09:38:00 | 2016-11-02 09:39:03 | 2016-11-02 09:39:03 | | 3715 | custom_cronjob | success | NULL | 2016-11-02 09:53:03 | 2016-11-02 09:53:00 | 2016-11-02 09:54:04 | 2016-11-02 09:54:04 | | 3758 | custom_cronjob | success | NULL | 2016-11-02 10:09:03 | 2016-11-02 10:09:00 | 2016-11-02 10:10:03 | 2016-11-02 10:10:03 | | 3797 | custom_cronjob | success | NULL | 2016-11-02 10:24:03 | 2016-11-02 10:24:00 | 2016-11-02 10:25:03 | 2016-11-02 10:25:03 | +-------------+----------------+---------+----------+---------------------+---------------------+---------------------+---------------------+
6: 设置自定义 cron group
打开crontab.xml在文本编辑器.
更改
<group id="default">为
<group id="custom_crongroup">
保存.
创建
/var/www/html/magento2/app/code/Magento/SampleMinimal/etc/cron_groups.xml具有以下内容:
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/cron_groups.xsd"> <group id="custom_crongroup"> <schedule_generate_every>1</schedule_generate_every> <schedule_ahead_for>4</schedule_ahead_for> <schedule_lifetime>2</schedule_lifetime> <history_cleanup_every>10</history_cleanup_every> <history_success_lifetime>60</history_success_lifetime> <history_failure_lifetime>600</history_failure_lifetime> </group> </config>
7: 验证 cron group
运行cron job 在Magento自定义组:php /var/www/html/magento2/bin/magento cron:run --group="custom_crongroup"
至少运行两次命令。
清除magento 2缓存:
php /var/www/html/magento2/bin/magento cache:clean
用管理员身份登录到后台.
点击 Stores > Configuration > Advanced >System.
在右窗格中展开 Cron.
如下图:
相关文章推荐
- Magento 2中文文档教程 - 配置和运行cron(定时任务)
- Magento计划任务定时 执行cron.sh脚本文件 / 执行.php文件
- setcronjob提供免费的定时计划任务服务
- ESXi添加定时计划任务Add cron Job to VMware ESX/ESXi
- Magento模块中添加计划任务Cron Job【magento二次开发】
- Magento计划任务实例 - Magento Cron Job Example
- 计划任务工具 cron 的配置和说明
- (转载)Linux定时任务cron配置
- 计划任务工具 cron 的配置和说明
- 计划任务管理 之 计划任务工具 cron 的配置和说明
- ubuntu上使用cron执行定时任务计划
- 计划任务工具 cron 的配置和说明
- 计划任务工具 cron 的配置和说明
- linux定时任务cron配置
- 用Linux计划任务cron执行cvs定时更新时的问题
- linux 计划任务cron--怎么定时执行的指令(笔记)
- 计划任务工具 cron 的配置和说明
- Windows Server 2008中使用计划任务定时执行BAT批处理文件图文教程
- linux定时任务cron配置
- [BAT][JAVA]定时任务之-Quartz使用篇(通过这个配置可以知道在做Quartz的时候需要的jar文件/Cron表达式使用语法/常用Cron表达式)