HomeLập trìnhPhpCách sử dụng...

Cách sử dụng Google Cloud Tasks trong Laravel PHP


bởi Errol Fernandes

CoE1qx5On0tmDKFzleXz8bSvndpM9rJlKfpY
nội dung.nanobox.io

Triển khai một ứng dụng Laravel trên Google App Engine là một nhiệm vụ khá dễ dàng nhờ tài liệu có sẵn. Nhưng việc thiết lập xử lý tác vụ không đồng bộ (Laravel Eventing) trên Google Cloud sao cho hiệu quả không hề đơn giản.

Một trong những cách chúng ta có thể thực hiện việc này là sử dụng tệp supervisord.conf để thiết lập Laravel queue:listen chỉ huy. Nhưng điều này chỉ khả dụng cho Môi trường linh hoạt của Google App Engine. Vì vậy, nếu bạn cần một giải pháp cho Môi trường tiêu chuẩn của Google App Engine, thì bạn cần sử dụng Google Cloud Tasks để xử lý các công việc không đồng bộ.

Google Cloud Tasks là một dịch vụ được quản lý hoàn toàn cho phép bạn quản lý việc thực thi, gửi và phân phối một số lượng lớn các tác vụ được phân phối. Khi sử dụng Tác vụ trên đám mây, bạn có thể thực hiện công việc một cách không đồng bộ bên ngoài yêu cầu của người dùng hoặc dịch vụ với dịch vụ.

Bước 1:

Tạo một hàng đợi nhiệm vụ để xử lý các nhiệm vụ. Ở đây, chúng tôi sử dụng tệp queue.yaml để chỉ định cấu hình của hàng đợi sẽ được tạo trong Google Cloud. Tham số đích chứa tên của ứng dụng được triển khai trên công cụ ứng dụng.

cqgEZ5IU7zeQ-NiFA60HC4AHlIbvjJyzcVn1

Bước 2:

Triển khai tệp queue.yaml trong Google Cloud bằng lệnh gcloud app deploy queue.yaml Hình ảnh bên dưới là hàng đợi Tác vụ của Google được tạo trong Google Cloud.

Đọc thêm  Công việc học lập trình Php - Diễn đàn freeCodeCamp
pLbVCTFBu-PMu1MOQrKXJqlczqPonw2d456T

Bước 3:

Chúng tôi cần chuyển tuyến đường của API và đối tượng tải trọng cho tác vụ. Trong ví dụ dưới đây, chúng tôi sẽ chuyển dữ liệu cần thiết cho một initTask() chức năng:

Bu9p27rXvAA4sHalnZHVrvgSrkMaWXSH6SAQ

Bước 4:

Tạo hàm initTask():

9oBdKkfhFjJbbCEB0nuSBr9w3yOp89N1zfIH

Chúng tôi chuyển userID của người dùng hiện tại trong tải trọng vì lý do xác thực. Bây giờ tải trọng đã sẵn sàng, chúng tôi chuyển tất cả các chi tiết cần thiết cho chức năng trình tạo tác vụ

Bước 5:

Tạo phương thức create_task(). Phương pháp này sẽ sử dụng Google API để xây dựng Tác vụ trên đám mây và chuyển tác vụ đó vào hàng đợi tác vụ. Tệp gAppCreds.json là Tài khoản dịch vụ của Google được tạo để xác định vai trò của ứng dụng.

VCBtOQ8jdrE-Xp9bVZP8Ec9jkZJkjbRmVDi5

Bước 6:

Bây giờ chúng tôi tạo các tuyến API bằng cách sử dụng RouteServiceProvider trong api.php:

3ELikvkitL6Oyv9u-jB-7IkdEck1xM-3o3xL

Bước 7:

Bây giờ chúng ta tạo một TaskController sẽ định tuyến API khác nhau tới chức năng cụ thể. Vì vậy, trong ví dụ dưới đây, chúng tôi tạo một associateApp() chức năng:

N9zDssAevMKOPAljdNo6Kk9rD7xV1oHhOU6-

Trong chức năng trên, chúng tôi json_decode tải trọng mà chúng tôi đã gửi Bước 4 và chuyển nó đến sự kiện tương ứng để xử lý. ID người dùng mà chúng tôi đã chuyển vào Bước 4 được sử dụng để xác thực tính xác thực của yêu cầu API đến.

Phán quyết cuối cùng:

Thông thường trong Laravel, chúng tôi gọi trực tiếp sự kiện từ bộ điều khiển tương ứng. Nhưng để sử dụng các tác vụ trên đám mây của Google, chúng tôi tạo một API tác vụ để lần lượt gọi tuyến đường gọi sự kiện để xử lý dữ liệu của chúng tôi. Vì vậy, tóm lại, chúng tôi tạo nhiều API cho các sự kiện và công việc Laravel của chúng tôi, sau đó được gọi là (bởi API tác vụ của Google) dựa trên tuyến đường mà bạn đi qua Bước 3Bước 6.

Đọc thêm  Bạn đang cố gắng để dropzone.js hoạt động với PHP? - JavaScript

Vì đang dùng Google Cloud Tasks nên tôi không cần lo lắng về người giám sát hay quản lý các công việc trong bảng xếp hàng, vì mọi thứ đã có Google Task Queue lo liệu. Tất cả những gì tôi phải làm là theo dõi Hàng đợi tác vụ nếu có bất kỳ tác vụ nào bị lỗi.

Sử dụng Google Cloud API, tôi có thể tạo nhiều hàng đợi cho các ứng dụng mục tiêu khác nhau mà tôi triển khai trên Google App Engine bất kể môi trường là Tiêu chuẩn hay Linh hoạt.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status