2013-04-12 36 views
6

Tôi đã tạo mô-đun magento xuất sản phẩm trong tệp csv. Bây giờ tôi muốn chạy cronjob mỗi ngày ở mức 23,55. Tôi đặt config.xml như được viết trong magento cronjob wiki.công việc cron magento và bảng cron_scheduler

Mã của tôi:

<crontab> 
     <jobs> 
      <gcompany_runprofilescronjob> 
       <schedule> 
        <cron_expr>55 23 * * *</cron_expr> 
       </schedule> 
       <run> 
        <model>export/export_csv::runprofilescronjob</model> 
       </run> 
      </gcompany_runprofilescronjob> 
     </jobs> 
    </crontab> 

Tôi cũng thiết lập cronjob trên máy chủ. Khi cronjob chạy, tất cả cronjobs trong magento được lưu trữ trong bảng cơ sở dữ liệu cron_schedule nhưng không phải là gcompany_runprofilescronjob của tôi. Nếu tôi đặt khoảng thời gian khác nhau ví dụ:

<cron_expr>*/1 * * * *</cron_expr> 

cronjob của tôi được viết bằng cơ sở dữ liệu nhưng trong thực thi mỗi phút mà tôi không muốn ... Tôi muốn rằng chức năng của tôi được thực hiện mỗi ngày tại 23,55. Bất cứ đề nghị những gì tôi đang làm sai?

+0

Bạn có thể có cơ hội tốt hơn để được trợ giúp trên http://magento.stackexchange.com/ –

Trả lời

4

Bước đầu tiên của tôi là cài đặt Fabrizio Branca's AOE Scheduler extension. Phần mở rộng của Fabrizio có một tính năng "List View" hiển thị cho bạn tất cả các công việc Cron hiện đã đăng ký với cron của Magento, và khi chúng được lên kế hoạch để chạy. Nó cũng cho phép bạn chạy một công việc cron ngay lập tức trong trình duyệt của bạn (tuyệt vời cho việc gỡ lỗi cron), hoặc lên lịch công việc để thực thi ngay lập tức.

Nếu công việc cron của bạn không xuất hiện trong chế độ xem danh sách của AOE Scheduler, có vấn đề với cấu hình của công việc cron. Hãy thử xóa bộ nhớ cache cấu hình để đảm bảo Magento sẽ phân tích cú pháp tệp config.xml của bạn để biết các thay đổi mới nhất. Tôi cho rằng nút XML của bạn nằm ở vị trí thích hợp trong hệ thống phân cấp của tài liệu XML, tức là trực tiếp dưới nút <config>?

Nếu công việc cron của bạn xuất hiện trong Chế độ xem danh sách và vẫn không chạy, hãy sử dụng tính năng "Tạo lịch biểu" để tạo lại bảng lập lịch cron. Ngoài ra, hãy thử chạy công việc định kỳ của bạn theo cách thủ công bằng tính năng "Chạy ngay" của AOE Scheduler để kiểm tra lỗi hoặc ngoại lệ.

+3

Bạn không cần cài đặt mô-đun hoàn chỉnh. Bạn có thể sao chép kịch bản shell/scheduler.php vào thư mục shell của tiến trình cài đặt. Sau đó, chạy lệnh này trong dòng lệnh và bạn sẽ có tất cả các chức năng. – SPRBRN

7

Mặc dù đây là một câu hỏi rất cũ, không có câu trả lời chính xác nào được đăng, vì vậy hãy để tôi để phần này ở đây cho người tiếp theo.

Bảng của Magento cron_schedule chỉ được điền bằng công việc cron được lên lịch để chạy trong tương lai gần. Lý do bạn không nhìn thấy công việc cron của bạn trong bảng là bởi vì nó chỉ chạy một lần một ngày, chính xác lúc 23:55. Magento sẽ thêm công việc cron này vào bảng cron_schedule vào khoảng 23:45, tùy thuộc vào cấu hình công việc cron của máy chủ của bạn và cài đặt công việc định kỳ của Magento trong System > Configuration > System > Cron. Lưu ý các cài đặt Generate Schedules EverySchedule Ahead for, xác định tần suất và mức độ tiến xa của Magento.

Các vấn đề liên quan