2016-04-11 2 views
0

Ich geht direkt auf den Punkt, so viel wie ich kann, ich magento 1,9 verwenden. Ich habe das folgende Stück Code in meinem einfachen Cron-Modul und jedes Mal, wenn der Cron-Job ausgeführt wird, konnte ich sehen, dass der Zeitplan gut protokolliert ist, aber ich sehe die folgenden Fehler im Protokoll der Nachricht.Wie Cron-Job richtig mit magento auszuführen - Ausnahme Mage_Core_Exception mit Meldung Ungültige Modell/Methodendefinition

Ausnahme 'Mage_Core_Exception' mit Meldung 'Ungültige Modell-/Methodendefinition, erwartet' model/class :: method '.' in /Users/XXXXX/Sites/projects/php/web/magento/magento_test1.9/SRC/app/Mage.php:595 Stapelüberwachung:

0/Users/XXXXX/Sites/projects/php/web/magento/magento_test1.9/SRC/app/code/core/Mage/Cron/Model/Observer.php(299): Mage :: throwException ('Ungültiges Modell/m ...')

1/Benutzer /XXXXX/Sites/projects/php/web/magento/magento_test1.9/SRC/app/code/core/Mage/Cron/Model/Observer.php(72): Mage_Cron_Model_Observer -> _ processJob (Object (Mage_Cron_Model_Schedule), Objekt (Mage_Core_Model_Config_Element))

2 /Users/XXXXX/Sites/projects/php/web/magento/magento_test1.9/SRC/app/code/core/Mage/Core/Model/App.php(1358): Mage_Cron_Mo del_Observer-> Dispatch (Objekt (Varien_Event_Observer))

3 /Users/XXXXX/Sites/projects/php/web/magento/magento_test1.9/SRC/app/code/core/Mage/Core/Model/App. PHP (1337): Mage_Core_Model_App -> _ callObserverMethod (Object (Mage_Cron_Model_Observer), 'Dispatch' Object (Varien_Event_Observer))

4 /Users/XXXXX/Sites/projects/php/web/magento/magento_test1.9/SRC/ app/Mage.php (448): Mage_Core_Model_App-> dispatchEvent ('default', Array)

5 /Users/XXXXX/Sites/projects/php/web/magento/magento_test1.9/SRC/test_cron.php (76): Mage :: dispatchEvent ('Standard')

6 {main}

Meine config: config.xml

<?xml version="1.0"?> 
<config> 
    <!-- lets define the module name and version --> 
    <modules> 
     <Mymodule_Update> 
      <version>0.1.0</version> 
     </Mymodule_Update> 
    </modules> 

    <frontend> 
      <!-- lets define the module router i.e. for request to any controller within the module and action e.g. mymodule/controller/action --> 
     <routers> 
      <update> 
       <use>standard</use> 
       <args> 
        <module>Mymodule_Update</module> 
        <frontName>mymoduleupdate</frontName> 
       </args> 
      </update> 
     </routers> 
     <!-- lets define the layout to be used by this module --> 
     <layout> 
      <updates> 
       <update module="Mymodule_Update"> 
        <file>mymoduleupdate.xml</file> 
       </update> 
      </updates> 
     </layout> 
    </frontend> 

    <crontab> 
     <jobs> 
      <!-- every 5 minute--> 
      <mymodule_update_in> 
       <schedule> 
        <cron_expr>*/5 * * * * </cron_expr> 
       </schedule> 
       <run> 
        <model> 
         mymodule_update/updater::performUpdateIn 
        </model> 
       </run> 
      </mymodule_update_in> 
      <!-- every 5 minute--> 
      <mymodule_update_out> 
       <schedule> 
        <cron_expr>*/5 * * * * </cron_expr> 
       </schedule> 
       <run> 
        <model> 
         mymodule_update/updater::performUpdateOut 
        </model> 
       </run> 
      </mymodule_update_out> 
     </jobs> 
    </crontab> 
    <global> 

      <!-- lets define the models to use--> 
     <models> 
      <mymodule_update> 
       <resourceModel>mymodule_update_resource</resourceModel> 
       <class>Mymodule_Update_Model</class> 
      </mymodule_update> 
      <mymodule_update_resource> 
       <class>Mymodule_Update_Model_Resource</class> 
      </mymodule_update_resource> 
     </models> 
     <helpers> 
      <mymodule_update> 
       <class>Mymodule_Update_Helper</class> 
      </mymodule_update> 
     </helpers> 
     <resources> 
      <mymodule_update_setup> 
       <setup> 
        <module>Mymodule_Update</module> 
        <class>Mymodule_Update_Model_Resource_Setup</class> 
       </setup> 
      </mymodule_update_setup> 
     </resources> 
     <events> 

     </events> 
    </global> 

</config> 

Meine Klasse Updater.php:

<?php 
class Mymodule_Update_Model_updater 
{ 
    public function performUpdateIn() 
    { 
     die("hello in"); 
    } 


    public function performUpdateOut() 
    { 
     die("hello out"); 
    } 
} 
?> 

Ich habe keine Ahnung, warum dies geschieht, habe ich versucht, mit die

mymodule_update/updater::performUpdateOut 
update/updater::performUpdateOut 

oder

mymodule_update/updater::performUpdateIn 
update/updater::performUpdateIn 

gleichen Fehler ist, was ich bekomme. Ich werde jeden mögen, der eine Idee hatte, warum das schief läuft, um mich in die richtige Richtung zu lenken, danke.

Antwort

0

das Problem Fand heraus zwischen den XML-Tags wird Abstand für die Aktion

heißt

   <model> 
        mymodule_update/updater::performUpdateOut 
       </model> 

sein sollte für die performUpdateIn

<model>mymodule_update/updater::performUpdateOut</model> 

ebenfalls auszuführen.

Der Versuch, einige Code-Editoren zu verschönern oder zuzulassen, Leerzeichen dazwischen hinzuzufügen, könnte zu Stunden unnötiger mentaler Arbeit führen.

Verwandte Themen