Giới thiệu plugin WP2Static: Job (phần 4)

WP2Static cung cấp quy trình công việc mềm dẻo để tạo website tĩnh, bao gồm quy trình công việc hoàn toàn tự động mà bạn có thể thiết lập thông qua giao diện người dùng (UI).

Bài viết này bàn về cách sử dụng Job Queue (hàng đợi công việc), để chúng ta có thể thao tác thủ công hoặc tự động thêm bất cứ kiểu Job nào (hoặc tất cả), bao gồm: detect (phát hiện URL), crawl, post_precess (xử lý hậu kỳ) và deploy (triển khai).

Với quy trình công việc bạn muốn có nhiều quyền điều khiển hơn thông qua dòng lệnh/mã mở rộng, hãy xem tài liệu về WP-CLI của chúng tôi (có thể tôi sẽ dịch khi có điều kiện).

Tại sao lại là hàng đợi công việc?

Chúng ta cùng xem xét quy trình làm việc lý tưởng của WP2Static:

  • một số nội dung được cập nhật
  • việc cập nhật nội dung diễn ra tự động trên trang web tĩnh thành phẩm (production static site)

Mặc dù chúng ta có nhiều kỹ thuật caching khác nhau để crawling và triển khai nhanh chóng, nhưng mỗi khi chúng ta cập nhật một bài post/page, chúng ta lại phải đợi toàn bộ quy trình làm việc của WP2Static hoàn thành trước khi tiếp tục biên tập, điều đó quả thực khá bực bội!

Bằng cách thông qua hàng đợi Job và điều khiển lịch trình mà ở đó Job Queue được xử lý, chúng ta có thể tận hưởng việc chỉnh sửa nội dung không bị gián đoạn trong WordPress và việc cập nhật trang thành phẩm (hoặc staging) cuối cùng nhất quán.

Một lợi ích khác của Job Queue là nó chuyển tất cả thực thi vào chế độ nền – loại bỏ việc phải để trình duyệt mở trong khi đang chạy tác vụ như các phiên bản cũ hơn trước đây của WP2Static. Điều này đi kèm yêu cầu gia tăng đối với các website lớn – yêu cầu cấu hình máy chủ web và PHP của bạn có khả năng hỗ trợ chạy các tác vụ dài (long running tasks). Những lợi ích về hiệu suất cho các trang web lớn là xứng đáng, và hầu hết các trang web nhỏ sẽ không cần thực hiện bất cứ thay đổi nào trên máy chủ của họ cũng như quy trình công việc sẽ hoàn thành trước khi nó chạm tới bất kỳ giới hạn timeout nào.

Chú thích của người dịch: việc chuyển sang sử dụng Job Queue là một cải tiến quan trọng về mặt hiệu suất, giúp plugin WP2Static có khả năng áp dụng thuận tiện trên các website thường xuyên cập nhật nội dung. Tuy nhiên ở thời điểm hiện tại yếu tố kích hoạt của việc tái tạo trang tĩnh chỉ là thêm/sửa/xóa bài post hoặc page, điều đó đồng nghĩa với chuyện rất nhiều thay đổi thường xuyên khác như cập nhật giao diện, plugin, menu không được tái tạo. Để khắc phục hạn chế đó, bạn có thể giảm các yếu tố động này gần như hoàn toàn bằng cách khóa cứng WordPress (không cập nhật phiên bản, không cập nhật giao diện, không cập nhật plugin), một thời gian dài, ví dụ khoảng nữa năm bạn mới cập nhật chẳng hạn.

Các tùy chọn cho Job

Tất cả các tùy chọn cho Job có thể được tùy chỉnh thông qua WP2Static > Jobs UI hoặc thông qua các câu lệnh WP-CLI.

tùy chọn cho Job

Các sự kiện trong hàng đợi Job mới (Events to queue new Jobs)

Ở đây, bạn có thể chọn các sự kiện WordPress sẽ kích hoạt hành vi thêm Job mới vào hàng đợi Job, chẳng hạn như việc tạo/cập nhật/xóa Post hoặc Page.

Thường thì, các sự kiện này cũng sẽ xóa URL liên quan trong Crawl Cache vì thế mà phiên bản cuối cùng của nội dung sẽ được crawl/xử lý/triển khai.

Các Job sẽ được thêm vào hàng đợi (Jobs that will be added to queue)

Từng kiểu Job được lựa chọn ở đây sẽ được thêm vào bất cứ khi nào các Job mới được bổ sung theo cách thủ công hoặc tự động vào hàng đợi Job. Thường thì việc lựa chọn tất cả là ổn.

Tần số xử lý hàng đợi (Process Queue Interval)

Tôi có thể yêu cầu WP2Static “làm điều gì đó” như thế nào?

Đây là khu vực ít trực quan nhất đối với người dùng mới và tôi sẽ ghi nhớ các cách để làm điều này ít phiền toái nhất có thể.

Câu trả lời thường liên quan đến tùy chọn Tần số Xử lý Hàng đợi / Process Queue Interval. Điều này tạo một lịch trình mới cho WP-Cron, lập lịch tác vụ nội bộ của WordPress. Ví dụ bằng cách thiết lập điều này thành 1 min (1 phút), WordPress sẽ chạy chức năng của WP2Static mà dùng để xử lý Job Queue nhiều nhất là mỗi phút.

Nếu WP-Cron bị vô hiệu hóa trên trang WordPress, sẽ không có điều gì xảy ra ngay cả khi bạn thiết lập tần số này.

WP-Cron là tính năng hữu ích của WordPress, nhưng nó là cách giải quyết cho môi trường lưu trữ hosting giới hạn hơn là công cụ lên lịch trình lý tưởng.

Các sự kiện WP-Cron cần một số người ghé thăm hoạt động trên trang WordPress của bạn để chạy. Điều này có nghĩa là, ngay cả khi bạn thiết lập lịch trình chạy từng phút, nếu bạn không ở trong màn hình Admin và nếu không có ai ghé thăm trang của bạn (vì bạn đang ở trên trang WordPress dành cho việc phát triển và không công khai nên sẽ không có ai ghé thăm đâu), thì tác vụ sẽ không chạy cho đến khi người ghé thăm kế tiếp hoạt động, tuy trong tương lai xa nó có thể.

Nếu bạn sử dụng lịch trình của WP-Cron, plugin WP Crontrol có thể giúp bạn hiển thị điều gì đang trong tiến trình và cho phép kích hoạt thủ công bất cứ tác vụ nào đã lên lịch.

Cần đảm bảo bạn đã nhấn nút “Save Job Automation Settings” sau khi thực hiện các thay đổi trên màn hình Jobs.

Quản lý hàng đợi Job / Manually Enqueue Jobs

Quản lý hàng đợi Job theo cách thủ công

Để thêm thủ công một Job mới vào hàng đợi, bạn nhấn nút “Manually Enqueue Jobs Now”. (Các) Job sau đó phải xuất hiện trọng Job Queue/History tại vị trí cuối của màn hình dành cho Job.

thêm thủ công hàng đợi Job

Xóa bỏ hàng đợi Job

Tại vị trí cuối cùng của màn hình Jobs, nhấn vào nút “Delete all Jobs from Queue / Xóa bỏ tất cả các Job từ hàng đợi”. Hành động này sẽ xóa tất cả các Job đã chạy xong và đang chờ, cũng như hoàn thành được một phần hoặc tạm dừng. Trong trường hợp bạn xóa các Job đang trong tiến trình xử lý (in-progress) khỏi hàng đợi, bạn nên vào màn hình Caches và xóa tất cả cache để tránh các kết quả không như mong đợi.

Xóa một Job đang trong tiến trình xử lý không đồng nghĩa với việc bạn đã thành công trong việc dừng Job đó trước khi nó hoàn thành. Với website rất lớn, để ép xóa bất cứ Job nào đang trong tiến trình, cách an toàn nhất là khởi động lại máy chủ web của bạn.

Bỏ qua hoàn toàn Job Queue (hàng đợi công việc)

Các câu lệnh WP-CLI của WP2Static cho phép bạn thực thi trực tiếp các chức năng detect (phát hiện URL), crawl, post_processdeploy (triển khai). Chúng không sử dụng Job Queue chút nào và có thể đây là cách sử dụng WP2Static mà bạn ưa thích hơn.

Nó có thể chạy hầu hết nếu không muốn nói là tất cả các chức năng được lập trình của WP2Static, thông qua giao diện của bạn, plugin hoặc mã tùy chỉnh. Bạn có thể xem thêm tài liệu về cách mở rộng WP2Static để có được các ý tưởng.

Các câu hỏi thường gặp (FAQs)

Tôi đã thêm hàng tá Jobs, nhưng tôi chỉ thấy có một cái là đang ‘waiting’

Nếu bạn cập nhật bài đăng 3 lần kể từ lần deployment cuối cùng, chúng ta sẽ không cần deploy 3 phiên bản khác nhau khi bạn chỉ muốn thay đổi gần đây nhất được phản ánh trên trang công khai của bạn (live site).

Nếu bạn thiết lập Job Queue xử lý lịch với khoảng thời gian 5 phút một lần và bạn tạo 3 thay đổi trong vòng 5 phút trước lần chạy kế tiếp đã được lên lịch (next schedule), WP2Static sẽ “squash/ép” bất kỳ Job nào có cùng kiểu trong Job Queue, nó chỉ giữ lại một kiểu được sửa đổi gần nhất mà thôi. Điều đó giúp giảm tải cho máy chủ của bạn và giữ Job Queue được gọn gàng sạch sẽ.

(Dịch từ tài liệu hướng dẫn trên trang chính thức cho plugin: WP2Static[.]com)

Leave a Comment