Các sự kiện Laravel có không đồng bộ không?

Khi tiếp cận một API, việc gửi các yêu cầu HTTP đi có thể mất thời gian. Nếu bạn đang sử dụng ứng dụng khách HTTP của Laravel, bạn có thể triển khai các yêu cầu không đồng bộ để cải thiện đáng kể hiệu suất

yêu cầu không đồng bộ

Khi bạn gửi một yêu cầu HTTP không đồng bộ, mã của bạn sẽ đợi phản hồi trước khi chuyển sang câu lệnh tiếp theo

Yêu cầu đồng bộ với Laravel HTTP Client

Điều này có nghĩa là nếu yêu cầu HTTP chậm và mất 5 giây, mã của bạn sẽ không hoạt động trong 5 giây. Nó sẽ chỉ chờ đợi, mà không làm bất cứ điều gì

Nếu bạn muốn tận dụng khoảng thời gian nhàn rỗi này để thực hiện các thao tác khác thì sao?

Yêu cầu không đồng bộ là yêu cầu được thực thi ở chế độ nền, vì vậy bạn không phải đợi phản hồi để tiếp tục mã của mình. Laravel HTTP Client có phương thức async[] cho điều đó

Yêu cầu không đồng bộ với Laravel HTTP Client

Hãy nhìn vào đầu ra

The request has been sent, but we didn't wait for the response.Response received!{"I am the request response"}

Chúng tôi đã gửi một yêu cầu HTTP trong nền mà không chặn mã của chúng tôi. Yêu cầu HTTP được gói gọn trong một lời hứa, thông báo cho chúng tôi về trạng thái của yêu cầu và sẽ chứa phản hồi sau khi nhận được

Bạn có thể sử dụng $promise->getState[] để biết trạng thái của yêu cầu không đồng bộ đang được thực thi trong nền. Nó sẽ trả về pending, rejected hoặc fulfilled

Trạng thái hứa hẹn

hãy nhận biết. Nếu mã của bạn kết thúc trước khi yêu cầu không đồng bộ kết thúc, nó sẽ bị gián đoạn. Đây là lý do tại sao ở cuối mã của bạn, bạn có thể sử dụng $promise->wait[] để chờ nhận phản hồi

⚡️ Bây giờ bạn đã biết cách thực hiện các tác vụ khác trong khi yêu cầu đang được gửi đi thay vì chờ phản hồi mà không làm gì cả

yêu cầu đồng thời

Việc sử dụng cụ thể các yêu cầu không đồng bộ là gửi một số yêu cầu cùng một lúc thay vì lần lượt từng yêu cầu. Chúng tôi gọi chúng là các yêu cầu đồng thời

Hãy tưởng tượng rằng bạn cần truy xuất danh sách người dùng thông qua API, nhưng kết quả được phân trang. Sẽ mất rất nhiều thời gian để truy cập từng trang của người dùng nếu bạn gửi các yêu cầu HTTP tuần tự như thế này

Yêu cầu HTTP đồng bộ và tuần tự

Thay vì gửi yêu cầu liên tục, chúng tôi có thể gửi 30 yêu cầu cùng một lúc. Điều này sẽ cải thiện đáng kể hiệu suất, đặc biệt nếu API chậm

Từ những điều vừa học, chúng ta có thể làm

yêu cầu đồng thời

Nó hoạt động tốt và đây là một giải pháp tốt. Nhưng Laravel HTTP Client đi kèm với một phương thức tiện dụng gọi là pool[] để làm cho nó dễ dàng hơn. Kiểm tra cái này

Máy khách HTTP của Laravel. Hồ bơi

$responses là một mảng và mỗi phiên bản phản hồi có thể được truy cập dựa trên thứ tự nó được thêm vào nhóm

Vì vậy, mã của chúng tôi trở thành

Đó là nó

Tôi hy vọng bạn thích bài viết này. Vui lòng vỗ tay vào bài viết này [👏] và đăng ký nhận bản tin trên Phương tiện của tôi để biết thêm

👀 Bạn có thể xem qua Laradoc, một công cụ Laravel mà tôi đang xây dựng để cập nhật tài liệu API của bạn bằng cách tự động tạo tài liệu đó [không cần khối dock. ]

Chà, chúng rất giống nhau, trình xử lý sự kiện lấy một sự kiện làm tham số trong phương thức xử lý, các công việc thì không. Các sự kiện phù hợp trong các tình huống mà bạn muốn tách rời phần kích hoạt khỏi phần hành động. Ví dụ: khi bạn có một số mô-đun trong dự án và bạn muốn một mô-đun phản ứng với một sự kiện trong một mô-đun khác

Khi bật tính năng khám phá sự kiện, Laravel sẽ tự động tìm và đăng ký các sự kiện và trình nghe của bạn bằng cách quét thư mục Trình nghe của ứng dụng của bạn. Ngoài ra, mọi sự kiện được xác định rõ ràng được liệt kê trong EventServiceProvider sẽ vẫn được đăng ký. Laravel tìm các trình lắng nghe sự kiện bằng cách quét các lớp trình nghe bằng sự phản chiếu

Tính năng tạo lô công việc của Laravel cho phép bạn dễ dàng thực thi một lô công việc và sau đó thực hiện một số hành động khi lô công việc đó đã thực hiện xong. Trước khi bắt đầu, bạn nên tạo một quá trình di chuyển cơ sở dữ liệu để tạo một bảng chứa thông tin meta lô công việc của bạn

Lò rèn Laravel. Nền tảng PHP tức thì trên DigitalOcean, Linode, v.v. Tính năng đẩy để triển khai, Redis, hàng đợi và mọi thứ khác mà bạn có thể cần để khởi chạy và triển khai các ứng dụng Laravel ấn tượng

Sự kiện. Sự kiện là những hành động được thúc đẩy bởi bất cứ thứ gì người lập trình muốn. Nếu bạn muốn kích hoạt một sự kiện khi ai đó tải trang, bạn có thể làm điều đó. Không giống như các sự kiện của người quan sát cũng có thể được xếp hàng và chạy qua nhịp tim cron của laravel. Các sự kiện được lập trình viên xác định một cách hiệu quả

Trong Laravel, các hàm response[] và json[] được sử dụng để tạo các ứng dụng web không đồng bộ. 62] Phiên trong Laravel là gì?

Không đồng bộ và theo sự kiện. Tất cả nút. API thư viện js không đồng bộ, nghĩa là không chặn. Về cơ bản, nó ngụ ý một máy chủ dựa trên Node. js, không bao giờ đợi API trả về dữ liệu

Sự kiện tổng hợp được gộp lại. Điều này có nghĩa là đối tượng SyntheticEvent sẽ được sử dụng lại và tất cả các thuộc tính sẽ bị vô hiệu hóa sau khi gọi lại sự kiện đã được gọi. Đây là vì lý do hiệu suất. Như vậy, bạn không thể truy cập sự kiện theo cách không đồng bộ

Laravel cung cấp một cách tuyệt vời để nối vào một sự kiện nhất định trong ứng dụng của bạn bằng cách sử dụng Sự kiện và Trình nghe. Tính năng này sẽ cho phép bạn đăng ký và lắng nghe các hoạt động khác nhau đã diễn ra trong ứng dụng của bạn

Các sự kiện cung cấp một triển khai trình quan sát đơn giản cho phép người dùng đăng ký và lắng nghe các sự kiện khác nhau được kích hoạt trong ứng dụng web. Tất cả các lớp sự kiện trong Laravel được lưu trữ trong thư mục app/Events và các bộ lắng nghe được lưu trữ trong thư mục app/Listeners

Ví dụ: khi kiểm tra bộ điều khiển gửi một sự kiện, bạn có thể muốn chế nhạo bộ xử lý sự kiện để chúng không thực sự được thực thi trong quá trình kiểm tra. Điều này cho phép bạn chỉ kiểm tra phản hồi HTTP của bộ điều khiển mà không phải lo lắng về việc thực thi trình xử lý sự kiện, vì trình xử lý sự kiện có thể được kiểm tra trong trường hợp thử nghiệm của riêng chúng

Các sự kiện có phải là Laravel không đồng bộ không?

Theo mặc định, tất cả các sự kiện đều được xử lý đồng bộ . Điều này có nghĩa là nếu bạn kích hoạt một sự kiện trong một yêu cầu, tất cả các máy chiếu sẽ được gọi trong cùng một yêu cầu.

Laravel không đồng bộ hay đồng bộ?

Yêu cầu không đồng bộ là yêu cầu được thực thi ở chế độ nền, vì vậy bạn không phải đợi phản hồi để tiếp tục mã của mình. Ứng dụng HTTP của Laravel có phương thức async[] cho điều đó.

Laravel có đồng bộ không?

Theo mặc định, Laravel đặt giá trị của biến này thành sync , nghĩa là framework sẽ xử lý tất cả các công việc một cách đồng bộ.

Sự kiện Laravel có được điều khiển không?

Trong Laravel, các sự kiện có thể là các hành động khác nhau xảy ra trong một ứng dụng như thông báo email, ghi nhật ký, đăng ký người dùng, thao tác CRUD, v.v. Các sự kiện của Laravel cung cấp một triển khai quan sát đơn giản, cho phép bạn đăng ký và lắng nghe các sự kiện khác nhau xảy ra trong ứng dụng của bạn .

Chủ Đề