Addon 2x CLI Job Runner - Trình chạy công việc CLI cho XenForo 2

PVS

Super Moderator
Thành viên BQT
CLI Job Runner - Trình chạy công việc CLI cho XenForo 2 1.5.0

Add-on này sẽ vô hiệu hóa job runner đã kích hoạt trình duyệt và cài đặt một job runner được kích hoạt CLI để sử dụng với Unix cron.

Yêu cầu
Add-on này yêu cầu PHP 5.4 trở lên và chỉ hoạt động trên XenForo 2.0.x

Cài đặt

Cài đặt như những addon bình thường.

Lưu ý: khi addon này được cài đặt và kích hoạt, các tác vụ đã lên lịch sẽ không còn chạy nữa - vì vậy việc hoàn tất các bước cài đặt còn lại là rất quan trọng để đảm bảo diễn đàn của bạn tiếp tục hoạt động bình thường.

Trước tiên, bạn nên kiểm tra xem job runner của bạn có đang hoạt động hay không - thực hiện lệnh sau từ CLI của bạn:
Mã:
$ php <path to your forum root>/cmd.php xf:run-jobs

Ví dụ: nếu diễn đàn gốc của bạn là /srv/www/xenforo/community, thì lệnh job runner sẽ là:
Mã:
$ php /srv/www/xenforo/community/cmd.php xf:run-jobs

Chạy lệnh này sẽ thực hiện bất kỳ job và sau đó kết thúc bằng một thông báo về việc liệu có nhiều job chờ đợi để được thực thi hay không. Khi thực hiện lệnh này từ cron, bạn nên sử dụng flag --quiet (hoặc -q) để triệt tiêu đầu ra.

Một khi biết các tính năng job runner, bạn sẽ cần phải tạo nhiệm vụ cron của riêng bạn để chạy nó trên một lịch trình lựa chọn của bạn.

Khuyên bạn nên chạy tác vụ cron của mình với tư cách là người dùng máy chủ web để ngăn các vấn đề về quyền tiềm ẩn.

Ví dụ, trên Ubuntu với người dùng máy chủ web của dữ liệu www, hãy cài đặt tác vụ cron bằng cách chạy lệnh sau:
Mã:
$ sudo crontab -u www-data -e

Chỉnh sửa tệp crontab và thêm:
Mã:
    *       *       *       *       *       php <path to your forum root>/cmd.php --quiet xf:run-jobs

Lưu crontab.

Thao tác này sẽ thực thi job runner mỗi phút, kiểm tra các outstanding job sẽ được chạy.

Theo mặc định, job runner sẽ chạy trong tối đa 30 giây, thực hiện bất kỳ outstanding job nào cho đến khi không có thêm job nào có thể chạy được trong hàng đợi.

Cấu hình

Bạn có thể điều chỉnh thời gian thực hiện tối đa của job runner bằng cách chỉ định tùy chọn --time=[TIME] trên dòng lệnh.

Ví dụ: để cho phép job runner thực hiện trong tối đa 45 giây:
Mã:
$ php <path to your forum root>/cmd.php --time=45 xf:run-jobs

Không nên cho phép job runner chạy lâu hơn khoảng thời gian giữa các trình kích hoạt cron. Ví dụ, task cron ở trên sẽ thực thi job runner mỗi phút, do đó, thiết lập thời gian chạy tối đa đến hơn 60 thường là một ý tưởng tồi.

Nếu bạn không muốn chạy tác vụ cron thường xuyên một lần mỗi phút, bạn có thể điều chỉnh công việc cron theo yêu cầu và nếu bạn làm, bạn cũng có thể muốn cho phép tác vụ job runner chạy lâu hơn 30 giây mặc định để đảm bảo rằng tất cả outstanding work đã hoàn thành.

Ví dụ, để chạy tác vụ cron cứ 5 phút một lần, cho phép job runner thực thi trong tối đa 4 phút, sử dụng lệnh cron sau đây:
Mã:
*/5       *       *       *       *       php <path to your forum root>/cmd.php --quiet --time=240 xf:run-jobs

Để có thêm tùy chỉnh thực hiện công việc của bạn, bạn cũng có thể điều chỉnh thời gian tối đa mà mỗi job được phép chạy.
Điều này được cấu hình thông qua một tùy chọn XenForo config.php:
Mã:
$config[jobMaxRunTime'] = 8;

Tùy chọn jobMaxRunTime cấu hình lượng thời gian tính bằng giây mà các job xử lý sẽ được phép chạy trước khi chúng bị đình chỉ để xử lý thêm trên một lần nữa, nếu có thể. Cài đặt mặc định được tối ưu hóa cho job runner do trình duyệt kích hoạt và do đó cho phép các job thực thi lâu hơn trong môi trường CLI, bạn có thể muốn điều chỉnh điều này thành giá trị cao hơn.

Bạn không nên đặt jobMaxRunTime cao hơn 30 giây hoặc thời gian được chỉ định bởi tùy chọn --time. Nói chung, đề xuất rằng cài đặt này được giữ ở một giá trị tương đối nhỏ để tránh tình huống mà một job rất dài có thể ngăn các job khác thực hiện một cách kịp thời. Một số thử nghiệm có thể được yêu cầu để tìm giá trị tối ưu cho tải máy chủ của bạn và kích thước diễn đàn.

Chúc các bạn thành công.


Nguồn: xenforo.com​
 

Đính kèm

Back
Top