จะตั้งค่างาน cron ใน magento ได้อย่างไร?

ฉันกำลังทำงานกับเวอร์ชันวีโอไอพี 1.7.0.2

ฉันต้องการส่ง CSV ทางไปรษณีย์ให้กับลูกค้า ควรทำทุกเดือนโดยใช้งาน cron ในวีโอไอพี

สำหรับงาน cron config.xml

<crontab>
    <jobs>
        <Module_Store>
            <schedule><cron_expr>0,15,30,45 * * * *</cron_expr></schedule>
            <run><model>clinic/observer::sendMailtoClinic</model></run>
        </Module_Store>
    </jobs>
</crontab>    

ผู้สังเกตการณ์.php

class Module_Store_Model_Observer {

  public function sendMailtoClinic(Varien_Event_Observer $observer, $content){                        
    $mail = new Zend_Mail();
    $mail->setType(Zend_Mime::MULTIPART_RELATED);
    $mail->setBodyHtml($html_body);
    $mail->setFrom($from_email, $from_email_name);
    $mail->addTo($to_email, $toEmailName);
    $mail->setSubject($subject);
    $file = $mail->createAttachment(file_get_contents($file_path));
    $file->type = 'text/csv';
    $file->disposition = Zend_Mime::DISPOSITION_INLINE;
    $file->encoding = Zend_Mime::ENCODING_BASE64;
    $file->filename = $file_name;
    $mail->send();
  }
}

การกำหนดค่าผู้ดูแลระบบสำหรับ cron คือ: -

Generate Schedules Every 15
Schedule Ahead for 15
Missed if Not Run Within 35
History Cleanup Every 15
Success History Lifetime 10
Failure History Lifetime 600

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก


person Neeraj Garg    schedule 17.05.2014    source แหล่งที่มา
comment
ตอนนี้งานของฉันแสดงอยู่ในตาราง cron_schedule แต่งานทั้งหมดแสดงสถานะรอดำเนินการและแสดงเวลา 'สร้างที่' และ 'กำหนดเวลาเมื่อ' ในฐานข้อมูล รอจาก 1 ชั่วโมงที่ผ่านมา แต่เวลา 'ดำเนินการเมื่อ' แสดงเป็นโมฆะ   -  person Neeraj Garg    schedule 21.05.2014
comment
คุณแน่ใจหรือว่ารหัสถูกต้อง ??   -  person Meabed    schedule 21.05.2014
comment
ใช่ รหัสถูกต้อง เมื่อฉันติดตั้งส่วนขยายตัวกำหนดตารางเวลา AOE และสร้างกำหนดการ มันใช้งานได้ แต่ตามค่าเริ่มต้น (ทุก ๆ 15 นาที) มันไม่ใช่ :( ฉันรัน cron.php จากเบราว์เซอร์ แต่ไม่มีโชค   -  person Neeraj Garg    schedule 21.05.2014
comment
คุณช่วยอธิบายกรณีของปัญหาโดยละเอียดหน่อยได้ไหม   -  person Meabed    schedule 21.05.2014
comment
งาน cron ไม่ทำงานโดยอัตโนมัติบน localhost   -  person Neeraj Garg    schedule 21.05.2014
comment
คุณได้ตรวจสอบไฟล์บันทึกวีโอไอพีแล้วหรือยัง?   -  person Lalit Kaushik    schedule 21.05.2014
comment
คุณสามารถส่งอีเมลจาก localhost ของคุณได้หรือไม่? คุณเปิดใช้งาน smtp และใช้งานได้หรือไม่?   -  person Meabed    schedule 21.05.2014
comment
magentocommerce.com/wiki/1_-_installation_and_configuration/   -  person Ravi Patel    schedule 21.05.2014
comment
ตอนนี้เพื่อตั้งค่า Crontab ใน Magento ให้ไปที่ผู้ดูแลระบบ =› ระบบ =› การกำหนดค่า =› ระบบ =› แท็บ 'Cron (งานที่กำหนดเวลาไว้)'   -  person Ravi Patel    schedule 21.05.2014
comment
ฉันทำอย่างนั้นแล้ว ดูคำถามของฉัน   -  person Neeraj Garg    schedule 21.05.2014
comment
หากคุณต้องการส่งอีเมลบน localhost เพื่อทำการทดสอบ ตรวจสอบให้แน่ใจว่า smtp ทำงานบน localhost ของคุณ   -  person Lalit Kaushik    schedule 21.05.2014
comment
คุณได้ตั้งค่า cron.php ใน crontab ของคุณแล้ว.. คุณสามารถตรวจสอบโดยใช้ crontab -l   -  person huzefam    schedule 30.05.2014


คำตอบ (3)


หากระบบเมลทำงานได้ดีและคุณยังประสบปัญหาอยู่ให้ลองวิธีนี้ด้วย:

แทนที่รหัสกำหนดค่าของคุณด้วยสิ่งนี้:

<crontab>
    <jobs>
        <clinic_cron>
            <schedule><cron_expr>0,15,30,45 * * * *</cron_expr></schedule>
            <run><model>clinic/observer::sendMailtoClinic</model></run>
        </clinic_cron>
    </jobs>
</crontab> 


class [Packagename]_Clinic_Model_Observer { // don't forget to mention package name

  public function sendMailtoClinic(Varien_Event_Observer $observer){                        

    $html_body = 'this is html body text';
    $from_email = '[email protected]';
    $from_email_name = 'sendername';
    $to_email = '[email protected]';
    $toEmailName = 'receiverName';
    $subject = 'subject text here';
    $file_path = 'here/is/file/path';
    $file_name = 'filename.csv';

    $mail = new Zend_Mail();
    $mail->setType(Zend_Mime::MULTIPART_RELATED);
    $mail->setBodyHtml($html_body);
    $mail->setFrom($from_email, $from_email_name);
    $mail->addTo($to_email, $toEmailName);
    $mail->setSubject($subject);
    $file = $mail->createAttachment(file_get_contents($file_path));
    $file->type = 'text/csv';
    $file->disposition = Zend_Mime::DISPOSITION_INLINE;
    $file->encoding = Zend_Mime::ENCODING_BASE64;
    $file->filename = $file_name;
    $mail->send();
  }
}

ค้นหาคำว่า "clinic_cron" ในรายการงานตามกำหนดเวลาที่นี่: ระบบ > ตัวกำหนดเวลา > มุมมองรายการ ตรวจสอบให้แน่ใจว่าคุณกำลังค้นหาด้วยงานที่กำหนดเวลาไว้ทั้งหมด ฉันหมายถึงดูการเพจด้วย ;)

หวังว่านี่จะช่วยได้! ขอให้ดีที่สุด!

person Lalit Kaushik    schedule 21.05.2014
comment
ระบบเมลทำงานได้ดี ปัญหาเดียวคือ cron ไม่ได้กำหนดเวลาโดยอัตโนมัติบนเซิร์ฟเวอร์ ฉันต้องกำหนดเวลาและรันงาน cron ทั้งหมดโดยใช้ตัวกำหนดเวลา AOE - person Neeraj Garg; 22.05.2014
comment
คุณได้ตั้งค่า Cron บน cPanel หรือไม่? - person Lalit Kaushik; 22.05.2014
comment
อีกประการหนึ่ง หาก crontab แสดงรายการอยู่ที่นี่ ระบบ > ตัวกำหนดเวลา > การกำหนดค่ากำหนดการ จากนั้น กำหนดเวลางานนั้นโดยเลือกการดำเนินการ กำหนดเวลาทันที - person Lalit Kaushik; 22.05.2014
comment
ใช่ ฉันกำลังพูดแบบเดียวกับที่การใช้ Schedule ตอนนี้มันใช้งานได้ แต่ควรเป็นการเริ่มอัตโนมัติ ฉันจะเพิ่มอะไรสำหรับสิ่งนี้ใน c-panel หรือไม่ ฉันจะเพิ่มได้อย่างไร? คุณช่วยอธิบายหน่อยได้ไหม? - person Neeraj Garg; 22.05.2014
comment
ใช่คุณต้องตั้งค่า cronjob ใน cpanel ดู magento.stackexchange.com/questions/8012 / - person Lalit Kaushik; 22.05.2014

ไปที่ app/code/core/Mage/CatalogRule/etc/config.xml

และการวาง

   <config>
     ...
   <crontab>
    <jobs>
    <catalogrule_apply_all>
        <schedule><cron_expr>0 1 * * *</cron_expr></schedule>
        <run><model>catalogrule/observer::dailyCatalogUpdate</model></run>
    </catalogrule_apply_all>
  </jobs>
    ...
 </crontab>
   ...
  </config>

คุณสามารถเปลี่ยนกำหนดการได้ตามที่คุณต้องการ โปรดดูที่ http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/how_to_setup_a_cron_job

person user3656133    schedule 21.05.2014
comment
อย่าเปลี่ยนไฟล์หลัก - person Neeraj Garg; 27.05.2014

รหัสทั้งหมดที่คุณทำนั้นใช้ได้ คุณเพียงแค่ต้องตั้งค่า cron.php เป็นงาน cron บนเซิร์ฟเวอร์

person urfusion    schedule 23.05.2014
comment
ฉันจะตั้งค่าบนเซิร์ฟเวอร์ได้อย่างไร? - person Neeraj Garg; 23.05.2014
comment
โปรดอ้างอิงถึง kayako.atlassian .net/wiki/display/DOCS/ - person urfusion; 23.05.2014
comment
Neeraj สิ่งเดียวกับที่ฉันบอกคุณที่นี่: stackoverflow.com/questions/23709781/ - person Lalit Kaushik; 26.05.2014