magento -- 1.4下的计划任务(cron job)

简介:

 

On some points, Magento needs regular maintenance. For instance, when running a shop of which the products are updated frequently, it is needed to refresh catalog indices. Also the search-index might need regular updating. To accomplish these tasks you can run Magento cronjobs. With MagentoTM 1.4 this is even easier. Here's how.

Meet cron

Within Linux environments, the program responsible for running scheduled tasks is called cron. Tasks that are run through cron are referred to as cronjobs. By runnning cronjobs daily or perhaps weekly, you can automate certain processes like refreshing the Magento indices or cleaning up logfiles.

Running cronjobs is something that depends on your hosting environment. Almost every Linux-server is shipped with cron-functionality, but within shared hosting environments it just depends whether you are allowed to use or not. Popular control panels like DirectAdmin or CPanel often allow you to create new cronjobs.

Running a Magento 1.4 job through cron

With Magento 1.3 and older, you had to write your own PHP-scripts to get things done. With Magento 1.4 this has become much easier. Within the Magento directory "shell" you can find various PHP-scripts that automate certain actions. The rest of this tutorial will discuss those actions as well.

Running such a script through cron doesn't mean calling this script through the browser. You'll need command-line access to your Magento site to run such a script manually. In exactly the same way that you run this from the command-line, the cronjob is also run. In the following examples, you will need to replace "/path/to/magento" with the exact directory that contains Magento.

 

 

php /path/to/magento/shell/indexer.php reindexall 

 

 

This will reindex all the Magento indices. Now this command first calls the PHP-program "php" with as first argument the location of the PHP-script, and as second argument something that is used as argument for the script.

It might be that the "php" program is not found by cron, in which case you will need to define the exact path to the "php" binary program:

 

 

/usr/local/bin/php /path/to/magento/shell/indexer.php reindexall 

 

To surpress output from the Magento script you can also add the flag "-q" (quiet):

 

php -q /path/to/magento/shell/indexer.php reindexall 

 

If you're running against memory limits, you might try to skip the regular configuration by using the flag "-n":

 

php -n /path/to/magento/shell/indexer.php reindexall 

 

 

The main cronjob

While this tutorial mainly deals with indexing and caching, there is another cronjob which should be seen as the primary cronjob: It is contained in the file "cron.php" and every Magento module that wants to schedule a certain job through Magento is handled through it. The only thing you need to do is run the script (without any arguments), let's say every night:

 

 

/usr/local/bin/php /path/to/magento/cron.php 

 

 

More Magento reindexing

When running the indexer.php script from the command-line we can find more tricks. First of all we can check for the current status of all the indices:

 

 

php /path/to/magento/shell/indexer.php --status 

 

We can also refresh a specific index. To do so, we first need to find out which arguments can be used:

 

php /path/to/magento/shell/indexer.php info 

 

This gives a listing like the following:

 

catalog_product_attribute Product Attributes catalog_product_price Product Prices catalog_url Catalog Url Rewrites catalog_product_flat Product Flat Data catalog_category_flat Category Flat Data catalog_category_product Category Products catalogsearch_fulltext Catalog Search Index cataloginventory_stock Stock status 

 

Now we found the technical names for the various indices, which we can use like the following example:

 

php /path/to/magento/shell/indexer.php --reindex catalog_product_flat 

 

 

The last example is again something we can use through cron.

Clean logs and using the Magento compiler

Besides refreshing indices, we can also clean up all the logs within the database:

 

 

php /path/to/magento/shell/log.php clean 

 

 

Even cooler is the new Magento Compiler module which is still in beta but gives great performance benefit by reducing the number of include-paths (4 by default) to one single include-path. This mainly saves CPU-resources.

You can check for the current state of the compiler by running the following:

 

 

php /path/to/magento/shell/compiler.php state 

 

Once checked you can disable the compiler temporarily, rebuild the include-paths again with the flag "compile" and enable the compiler once more.

 

php /path/to/magento/shell/compiler.php disable php /path/to/magento/shell/compiler.php compile php /path/to/magento/shell/compiler.php enable 

 

原文链接地址:http://www.yireo.com/tutorials/magento/magento-administration/340-magento-14-cronjobs

 

PS:   关于cronjobs我已经在置顶的文章里描述过,内容是基于Magento1.3的       http://blog.csdn.net/shuishui8310/archive/2010/05/08/5570926.aspx

        这篇文章描述的是Magento1.4环境下cronjobs的变化和设置方法的不同之处

目录
相关文章
|
1月前
|
存储 监控 Linux
|
29天前
|
监控 安全 Linux
在Linux中,如何设置定时任务(cron job)?
在Linux中,如何设置定时任务(cron job)?
|
1月前
|
监控 Linux 网络安全
在Linux中,什么是cron作业?如何创建一个cron作业?
在Linux中,什么是cron作业?如何创建一个cron作业?
|
Linux Shell
centos 8利用crontab设置定时任务,crontab每秒运行
centos 8利用crontab设置定时任务,crontab每秒运行
824 0
centos 8利用crontab设置定时任务,crontab每秒运行
|
Unix Linux Shell
cron设置定时任务详解
cron设置定时任务详解
crontab安装以及定时任务的执行
crontab安装以及定时任务的执行
129 0
|
Shell 调度 数据安全/隐私保护
|
应用服务中间件 Linux nginx