cron работа в magento - PullRequest
       1

cron работа в magento

0 голосов
/ 22 октября 2011

Я не буду делать одну минуту в cron-работе в magento, поэтому у меня есть ниже информация http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/how_to_setup_a_cron_job

так что с помощью вышеизложенного я сделал новые модули для этой установки cron, эти модули активны и отображаются в админ-панели magento, но cron не запускается

мой код для файла конфигурации:

<?xml version="1.0"?>
<config>
    <modules>
        <Apprika_Cron>
            <active>true</active>
            <codePool>local</codePool>
        </Apprika_Cron>
    </modules>
    <crontab>
          <jobs>
              <Apprika_Cron>
                  <schedule>
                      <cron_expr>*/1 * * * *</cron_expr>
                  </schedule>
                  <run>
                      <model>Cron/Observer::setLifeCycleStatus</model>
                  </run>
              </Apprika_Cron>
          </jobs>
      </crontab>
</config> 

и созданная мной модель в C: \ xampp \ htdocs \ ce \ app \ code \ local \ Apprika \ Cron \ Model \ Observer.php

код для этого

class Apprika_Cron_Model_Observer extends Mage_Core_Model_Abstract
{
    public function _construct()
    {
         parent::_construct();
        $this->setLifeCycleStatus();
    }
    public function setLifeCycleStatus()
    {

       $products = Mage::getModel('catalog/product');
       $live_concluded=$this->getProductInfoforLifecycle();

       $product = Mage::getModel('catalog/product');
      if(count($live_concluded)>0){
       foreach($live_concluded as $status=>$value)
       {
           if($status=='live')
           {
               for($i=0;$i<count($value);$i++)
               {
                   $productId=$value[$i];
                   if($productId) 
                   {
                        try 
                        {  
                            $product->load($productId);
                            $product->setData('offer_stage','3');
                            $product->save();         
                        }catch(Exception $e)
                        {
                            Mage::printException($e);
                        }

                   }
               }
           }
           if($status=='concluded')
           {
               for($j=0;$j<count($value);$j++)
               {
                   $productId=$value[$j];

                   if($productId) 
                   {
                        try 
                        {  
                            $product->load($productId);
                            $product->setData('offer_stage','4');
                            $product->save();         
                        }catch(Exception $e)
                        {
                            Mage::printException($e);
                        }
                   }

               }
           }
       }
       }


    }
     public function getProductInfoforLifecycle() 
     {  
        $products = Mage::getModel('catalog/product')
        ->getCollection()
        ->addAttributeToSelect('*');
         $current_date=Date('Y-m-d H:i');  
        $current_date_ts=strtotime($current_date);
        $productarr=array();
        foreach($products as $product)
        { 
            $offer_stage=$product->getOffer_stage();
            $offer_start_date= $product->getOffer_start_date();
            $offer_start_date_ts=strtotime($offer_start_date);
            $offer_end_date= $product->getOffer_end_date();
            $offer_end_date_ts=strtotime($offer_end_date);
            $entity_id=$product->getEntity_id();
            if($offer_stage==2 && $offer_start_date!="" && $offer_end_date!="" && $offer_start_date_ts <=$current_date_ts)
            {
              $productarr['live'][]=$entity_id;
            }if($offer_stage==2 && $offer_start_date!="" && $offer_end_date!="" && $offer_end_date_ts <=$current_date_ts)
            {
              $productarr['concluded'][]=$entity_id;
            }

        }

         return $productarr;
      }  
}

но этот cron не вызывается, поэтому эти записи не обновляются

если я позвоню http://xyz.com/cron.php

затем записи обновляются, но с помощью записей хрон не обновляются

Заранее спасибо

1 Ответ

1 голос
/ 22 октября 2011

Вам нужно будет добавить эту строку (или аналогичную строку) в ваш crontab:

*/5 * * * *  /bin/sh /absolute/path/to/magento/cron.sh
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...