以编程方式锁定索引器 -- magento-1 领域 和 indexing 领域 magento 相关 的问题

Locking indexer programmatically


简体版||繁體版
3
vote

问题

中文

我尝试使用此代码锁定我的索引器,因为我曾经做过:

  <?php $_items = $_order->getItemsCollection(); ?> <?php $_index = 0; ?> <?php $_count = $_items->count(); ?> <?php $_giftMessage = ''?> <?php foreach ($_items as $_item): ?> <?php if ($_item->getParentItem()) { continue; } ?>         <tbody>             <?php echo $block->getItemHtml($_item) ?> 0  

我注意到我的索引器没有被锁定,当我去看我看到的核心文件时,我看到它被推翻了。是否有其他方法可以锁定索引器?我看着它,并没有看起来。

英文原文

I tried locking my indexer programmatically with this code as I used to do:

$indexer = Mage::getSingleton('index/indexer');             $indexer->lockIndexer(); 

I noticed that my indexer didn't get locked and when i went looking in the core files I saw it was deprecated. Is there any other way to lock the indexer? I looked into it and didn't exactly see one.

     

回答列表

6
 
vote
vote
最佳答案
 

您可以 touch 锁定文件。

  <?php touch('BP.DS.'var'.DS.'locks'.DS.'index_process_1.lock')   

  #!/bin/bash touch /home/path/public_html/var/locks/index_process_1.lock   

这显然是一种低质量的解决方案 - 但是如果你想在magento外围地执行这个动作(例如,来自 998876610 脚本,它将是合适的)。


否则,您需要的方法在 value1

value2 value3 value4

假设您的模块扩展了所述类,只需要仅声明

  value5  

并将方法视为适当的

  value6  
 

You could just touch the lock file.

<?php touch('BP.DS.'var'.DS.'locks'.DS.'index_process_1.lock') 

or

#!/bin/bash touch /home/path/public_html/var/locks/index_process_1.lock 

This is obviously a low quality solution - but if you wanted to perform this action peripherally to Magento (eg. from a bash script, it would be suitable).


Otherwise, the methods you need are in Mage_Index_Model_Process

Such as isLocked(), lockAndBlock(), and unlock()

Assuming your module extends said class, you need only declare

const PROCESS_ID = 'my_indexer' 

And use the methods as appropriate

$this->lockAndBlock(); 
 
 
 
 
2
 
vote

您可以单独锁定每个索引过程:

  value7  
 

You can lock each index process individually:

Mage::getModel('index/process')->load(x)->lock(); 
 
 
 
 

相关问题

1  什么会导致目录重写索引器需要在完成后立即刷新?  ( What would cause catalog rewrites indexer to need refreshed immediately after it ) 
在重新筛选目录URL重写之后,Magento表示我们需要再次纠正它们。我正在使用命令行以将indexer.php作为后台任务运行: nohup php indexer.php --reindex catalog_url > /home/ubuntu/rewrites_index_20130218 2> /home...

2  在冲突的URL路径冲突的情况下,有哪些规则管理哪个实体“赢”  ( What are the rules that govern which entity wins in the case of conflicting ur ) 
如果多个实体(例如类别,产品,CMS页面和模块FrontName)所有尝试使用相同的SEF URL,那么Magento用于决定哪些算法或进程将保存在中core_url_rewrite 具有所需的 request_path ,它将附加的后缀解析冲突(例如'sale-123.html')。 提出问题另一种方式,如果一个C...

0  找不到基表或视图:1146表'cpaneluser_magento.catalog_category_flat'不存在'  ( Base table or view not found 1146 table cpaneluser magento catalog category fl ) 
在尝试reindex catalog_category_flat(类别平面数据)时我正在遇到以下错误。我确实尝试使用phpmyadmin和magento数据库修复工具修复数据库,但仍未修复。你可以调查错误,让我知道是否有其他方法来解决问题? Stack trace: #0 /home/cpaneluser/pub...

2  关闭禁用产品的URL重写索引  ( Turn off url rewrite indexing for disabled products ) 
如何关闭在Magento 1.9中的禁用产品索引的目录URL索引? ...

10  Reindex单产品  ( Reindex single product ) 
我想在更新后reindex单一产品。 现在我使用: $product = Mage::getModel('catalog/product')->loadByAttribute('sku', 'foobar'); // edit something $product->save(); $stockItem = M...

2  重新计算产品的价格(应用“目录价格规则”)  ( Recalculating a products price applying catalog price rules ) 
我有一个模块,可直接在数据库中更改产品的价格。我想要 catalog price rules ,我们网站上的各种折扣,在我更新基本价格后应用于产品的价格。 保存项目,无论是在管理区域还是 ->save() 呼叫设置价格,但它需要太长时间才能保存我们所需要的所有项目。我想重新计算折扣价格而不做别的。 我已经尝试了各种"...

1  在我的男人类别中,其他类别产品显示我只分配6个产品,但我不知道为什么40个产品显示  ( In my mens category other category product is showing i only assign 6 products ) 
在我的男人类别中,其他类别产品显示我只分配6个产品,但我不知道为什么40个产品在这里显示,请帮助我。 我只将6个产品分配给我从菜单和产品功能检查的此类别,但我没有找到任何解决方案。 让我们假设我有一个类别,衣服和这个类别有一个子类别的T恤。 现在我将产品添加到T恤类别(通过选中添加产品屏幕中的框),但我不检查服装类别...

3  Magento 1.9.3.2搜索返回空结果  ( Magento 1 9 3 2 search returns empty result ) 
升级后,Magento搜索不起作用。 我尝试过这个 https://magento.stackexchange.com//67952 选择 e 。*, search_result 。 relevance , price_index 。 price , price_index 。 tax_class_id , ...

1  var /锁总是空的  ( Var locks is always empty ) 
我在Magento安装中看到了Var / Locks文件夹。但它始终是空的 - 即使是索引器正在运行。 我假设如果索引器触发多次触发,则会导致问题,这是正确的吗? 但我无法追踪为什么它总是留空。 Var / Locks设置为777 [Drwxrwxrwx] var /锁将由var / logs的同一用户拥有(...

2  类别URL重写损坏  ( Category url rewrites corrupted ) 
我在Enterprise_URL_REWRITE中被损坏的URL,如下所示: category/subcategory.html-274 注意,数字在后缀之后。当我重新输入url_redirect过程时,数字递增到275。 任何身体都有任何想法? ...




© 2022 it.wenda123.org All Rights Reserved. 问答之家 版权所有