Làm thế nào để đảm bảo công việc định kỳ Magento 2.0 của bạn đang chạy


7

Làm cách nào để đảm bảo công việc định kỳ Magento của tôi đang chạy? Tôi thiết lập cron theo hướng dẫn cài đặt Magento 2 cho các tệp nhật ký.

Xem ảnh chụp màn hình (bấm vào để phóng to):

https://drive.google.com/open?id=0Bytqhoir_Tt5TG5LTWh5TmYxN28

Tôi đang chạy Magento CE 2.0.2

Nền tảng máy chủ:

  • Hệ điều hành: CENTOS 7.2 x86_64
  • CPU: Dual Intel (R) Xeon (R) CPU E5-2620 0 @ 2.00GHz
  • RAM: 256 GB
  • Lưu trữ: Lưu trữ đám mây dựa trên SSD
  • Mạng: 20 Gigabits
  • Giao diện người dùng máy chủ: cPanel / WHM 54.0 Build 18 (mới nhất / ổn định)
  • Apache: 2.2,26
  • MySQL: 5.6,29
  • PHP: 5.6,18

Crontab cho tài khoản máy chủ người dùng cPanel:

*/1 * * * * /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/bin/magento cron:run > /home/abcdefg/public_html/var/log/magento.cron.log&
*/1 * * * * /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/update/cron.php > /home/abcdefg/public_html/var/log/update.cron.log&
*/1 * * * * /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/bin/magento setup:cron:run > /home/abcdefg/public_html/var/log/setup.cron.log&

Đã thêm 2016-05-05

Tôi đã được thông báo rằng MySQL cron_schedulecó chứa hoạt động cron. Vì vậy, tôi nhìn vào bảng và tìm thấy những mục này. Đây là một đoạn của mỗi mục duy nhất trong bảng đó hiển thị mục mới nhất của chúng.

55534 aggregate_sales_report_coupons_data running Class Magento\SalesRule\Crone\AggregateSalesReportCouponsData does not exist 2016-05-04 19:54:02 2016-05-04 20:00:00 NULL NULL
56093 captcha_delete_expired_images success NULL 2016-05-05 07:06:03 2016-05-05 07:10:00 2016-05-05 07:10:02 2016-05-05 07:10:02
56081 captcha_delete_old_attempts success NULL 2016-05-05 06:51:02 2016-05-05 07:00:00 2016-05-05 07:00:03 2016-05-05 07:00:03
56070 catalog_index_refresh_price success NULL 2016-05-05 06:51:02 2016-05-05 07:00:00 2016-05-05 07:00:03 2016-05-05 07:00:03
56094 magento_newrelicreporting_cron success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56092 newsletter_send_all success NULL 2016-05-05 07:06:03 2016-05-05 07:10:00 2016-05-05 07:10:02 2016-05-05 07:10:02
56071 sales_clean_orders success NULL 2016-05-05 06:51:02 2016-05-05 07:00:00 2016-05-05 07:00:03 2016-05-05 07:00:03
56084 sales_grid_order_async_insert success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56087 sales_grid_order_creditmemo_async_insert success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56085 sales_grid_order_invoice_async_insert success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56086 sales_grid_order_shipment_async_insert success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56091 sales_send_order_creditmemo_emails success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56088 sales_send_order_emails success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56089 sales_send_order_invoice_emails success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56090 sales_send_order_shipment_emails success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03

Ngoài ra, làm cách nào tôi có thể nhận được 3 crons tệp nhật ký để chạy mà tôi thiết lập khi cài đặt ban đầu:

*/1 * * * * /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/bin/magento cron:run >> /home/abcdefg/public_html/var/log/magento.cron.log&
*/1 * * * * /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/update/cron.php >> /home/abcdefg/public_html/var/log/update.cron.log&
*/1 * * * * /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/bin/magento setup:cron:run >> /home/abcdefg/public_html/var/log/setup.cron.log&

Cuối cùng, tôi nhớ vài năm trước khi tôi cài đặt một phiên bản Magento cho một máy khách trong Magento v1, bằng cách nào đó, chỉ mục trang & bộ đệm và chỉ mục sản phẩm & bộ đệm đã được cập nhật tự động thông qua cron bằng cách nào đó. Làm thế nào tôi có thể khiến Magento 2 làm điều tương tự? Mỗi lần tôi đăng nhập vào Magento 2 trong phần phụ trợ UI UI, tôi cần reindex & xóa bộ đệm để các sản phẩm của khách hàng của tôi có thể xuất hiện trên trang web.

Kiểm tra 2016-05-05 lúc 12:05 tối ET

(1) Tôi cắt ngắn cron_schedulebảng. Sau 1 phút, đây là bảng mới:

nhập mô tả hình ảnh ở đây

Đây là bảng sau khi cron chạy:

nhập mô tả hình ảnh ở đây


Vui lòng thêm chi tiết hệ thống của bạn
Jayesh Patel

Làm thế nào để tôi làm điều đó hoặc cụ thể những gì bạn muốn thấy @JayeshPatel
H. Ferrence

Ý tôi là nói về hệ điều hành hệ thống, máy chủ của bạn, v.v.
Jayesh Patel


Phải @Arunendra ... đó là trang tài liệu chính xác mà tôi đã sử dụng để thiết lập các mục nhật ký cron. Vậy tại sao tôi nhận được thông báo lỗi / thông báo bật lên?
H. Ferrence

Câu trả lời:


14

Cắt bớt cron_schedulebảng và xem nếu nó được điền lại với các tác vụ theo lịch trình sau một vài phút.

Rough, tôi biết, nhưng sẽ cho bạn một câu trả lời. Ngoài ra, có lẽ nó đáng để làm điều này trên một env dàn dựng. Đầu tiên.

Sử dụng:

truncate cron_schedule;

Sau vài phút sử dụng:

select * from cron_schedule;

Cảm ơn @GeorgeSchiopu. Làm điều đó bây giờ. Tôi sẽ đăng lại trong một vài phút. Và với giá trị của nó, tôi sẽ xem xét trang web trên một máy chủ dàn dựng vào lúc này vì chúng tôi chỉ đơn giản là xây dựng trang web vào thời điểm này. Hoặc ít nhất là cố gắng xây dựng nó. Magento 2.0 có vẻ rất lỗi và phức tạp :(
H. Ferrence

Hãy xem OQ của tôi với bản sửa đổi mới nhất @GeorgeSchiopu. Cảm ơn vì sự giúp đỡ.
H. Ferrence

Thật tuyệt, @ H.Ferrence, rất vui vì đã giúp.
George Schiopu

@ H.Ferrence bạn có thể đánh dấu câu trả lời của tôi là "người được chọn" không, nếu nó giúp bạn giải quyết vấn đề? Nó có thể chứng minh có lợi cho những người khác thấy điều đó (... và tôi chỉ mất hơn 1yr để nhận ra điều đó!). Cảm ơn.
George Schiopu

1

Hãy thử chỉ định người dùng được sử dụng để chạy lệnh. Đừng sử dụng root cho nó, chỉ người dùng magento. Ví dụ:

*/1 * * * * username /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/bin/magento cron:run > /home/abcdefg/public_html/var/log/magento.cron.log&
*/1 * * * * username /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/update/cron.php > /home/abcdefg/public_html/var/log/update.cron.log&
*/1 * * * * username /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/bin/magento setup:cron:run > /home/abcdefg/public_html/var/log/setup.cron.log&

Ví dụ từ máy chủ của tôi (CENTOS 7) đang hoạt động tốt:

*/1 * * * * myuser php -c /etc/php.ini /srv/html/path_to_magento/bin/magento cron:run > /srv/html/path_to_magento/var/log/cron.log

1

Có vẻ như xảy ra một lần và một lúc với máy Vagrant của tôi. Tôi nhận được thông báo tương tự, tất cả những gì tôi phải làm để loại bỏ nó là reindex dữ liệu bằng cách sử dụng:

Bộ lập chỉ mục bin bin / magento: reindex


1

Bạn nên kiểm tra ba điều:

  • sudo service cron status để kiểm tra xem dịch vụ có chạy trên máy chủ không

  • ls -la và kiểm tra xem tập tin người dùng và nhóm của bạn có giống với tập tin bạn đã cấu hình trên cron không crontab -u xxx -e

  • select * from cron_schedule và kiểm tra xem bảng cron có đang được điền không.


1

Sau đây là hữu ích:

  1. Bảng MySQL "cron_schedule" là bạn của bạn, mở phpmyadmin hoặc bất kỳ máy khách mysql nào, thực hiện điều này:

chọn * từ cron_schedule;

tìm kiếm các cột "created_at", "exec_at" và "messeges" có thể cung cấp cho bạn thông tin hữu ích về cron làm việc hoặc chạy.

nhập mô tả hình ảnh ở đây

  1. Sử dụng ssh để kết nối với máy chủ và thực hiện lệnh cron theo cách thủ công nếu bạn thấy "Ran công việc theo lịch trình.", Điều đó có nghĩa là bảng cron_schedule đã được cập nhật.

1

Theo Magento Dev Docs ,

Tất cả dữ liệu cron được ghi vào cron_schedulebảng trong Magento database. Bảng cung cấp một lịch sử của các công việc định kỳ, bao gồm:

  • ID và mã công việc
  • Trạng thái
  • Ngày tạo ra
  • Lịch hẹn
  • Ngày thực hiện
  • Ngày kết thúc

Để xem các bản ghi trong bảng, đăng nhập vào cơ sở dữ liệu Magento trên dòng lệnh và nhập

CHỌN * từ cron_schedule;


-1

Mở cron.phpở thư mục gốc của Magento và địa điểm:

Mage::log('cron is running', null, 'myCronLog.log'); 

Kiểm tra tệp này sau một khoảng thời gian và kiểm tra xem liệu tệp nhật ký được tạo ra hay không var/log. Nếu nó được tạo thì cron của bạn đang chạy.


3
Điều này sẽ chỉ hoạt động cho magento1, không phải magento2. Mage :: không còn tồn tại trong magento 2, bạn cần sử dụng loggerInterface như được mô tả ở đây: magento.stackexchange.com/questions/92434/ Lỗi
tecjam

Có ai biết làm thế nào để giải quyết vấn đề này trong Magento 2 không?
H. Ferrence
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.