Dữ liệu thăm dò Python

Bỏ phiếu tùy chỉnh có thể không hiệu quả và dễ bị lỗi. Thay vào đó, hãy cân nhắc sử dụng người phục vụ AWS. Người phục vụ là một khái niệm trừu tượng được sử dụng để thăm dò tài nguyên AWS, chẳng hạn như bảng DynamoDB hoặc bộ chứa Amazon S3, cho đến khi đạt đến trạng thái mong muốn

ID máy dò

python/aws-polling-instead-of-waiter@v1. 0

Bảng liệt kê điểm yếu chung [CWE]

Trong các hệ thống, máy khách và máy chủ giao tiếp với nhau trong đó máy khách yêu cầu và máy chủ phản hồi lại máy khách tương ứng với dữ liệu được yêu cầu. Bây giờ có thể có các lựa chọn về tần suất tôi cần cập nhật dữ liệu? . Ở đây chúng ta sẽ thảo luận về hai khái niệm cơ bản Bỏ phiếu và Truyền phát

bỏ phiếu

Nó được định nghĩa là quá trình khi máy khách yêu cầu một phần dữ liệu cụ thể theo định kỳ [có thể cứ sau x giây] và máy chủ hoàn nguyên với phản hồi thông thường với dữ liệu được yêu cầu

Trong những trường hợp này, khi máy khách cần cập nhật dữ liệu [lấy dữ liệu từ máy chủ] thường xuyên ở chế độ tức thì, việc bỏ phiếu có thể không có lợi cho kiến ​​trúc của bạn. Bán tại. Bạn đang xây dựng một ứng dụng trò chuyện trong đó bạn có nhiều ứng dụng khách nhằm giao tiếp với nhau trong thời gian thực. Là Chuyên gia thiết kế hệ thống, bạn cần đảm bảo rằng khách hàng nhận được các bản cập nhật ngay lập tức [ở đây các bản cập nhật có nghĩa là trò chuyện, txt, tin nhắn]. Nhưng Bỏ phiếu không phù hợp ở mọi nơi như một ví dụ về Chatbox, bạn cần nhận được tin nhắn tức thời khi đầu bên kia gửi nó, nhưng do khoảng thời gian x giây đã đặt, bạn không thể có được cảm giác tức thì của tin nhắn và tin nhắn của bạn sẽ cảm thấy khó chịu.

Sự phù hợp nhất của Thăm dò ý kiến ​​có thể nhận được các bản cập nhật nhiệt độ có thể là 30 giây/1 phút trong khoảng thời gian đều đặn

truyền trực tuyến

Truyền trực tuyến được thực hiện thông qua ổ cắm, bạn có thể tìm hiểu chi tiết về ổ cắm tại đây. Theo thuật ngữ của Layman, ổ cắm là một tệp mà máy tính của bạn có thể ghi/đọc từ một kết nối có chiều rộng dài với một máy tính khác, một kết nối mở cho đến khi một máy tắt nó đi

Bán tại. Thiết kế Ứng dụng trò chuyện giống như WhatsApp/Instagram và nhiều ứng dụng khác

Tại đây, bạn có thể nghĩ đến lựa chọn giảm khoảng thời gian đã đặt và sử dụng Bỏ phiếu thay vì Truyền phát, tức là bạn có thể nghĩ đến việc giảm khoảng thời gian đã đặt xuống 1 giây/0. 5 giây so với trong vòng 10 giây, bạn đang yêu cầu tối đa 20 yêu cầu cho một khách hàng và đối với hàng triệu khách hàng, điều này sẽ gây ra sự cố cho máy chủ của chúng tôi khi xử lý các yêu cầu này cùng một lúc. Ở đây, bạn cần lưu ý rằng bạn có thể nhận được trải nghiệm tức thì trong tin nhắn nhưng điều này không tối ưu vì nó sẽ tạo thêm tải cho máy chủ

Bỏ phiếu vs Truyền phát

Điểm quan trọng. Trong Thăm dò ý kiến, đối với phản hồi của máy chủ, mỗi yêu cầu được gửi, nhưng khi phát trực tuyến, máy khách sẽ lắng nghe một cách cởi mở mà không có yêu cầu dữ liệu bên ngoài từ máy chủ. Về phía máy chủ, để phát trực tuyến, nó sẽ không đợi dữ liệu gửi cho mọi yêu cầu mà sẽ đẩy dữ liệu khi nhận thấy bất kỳ thay đổi nào. Thông qua phát trực tuyến, bạn có thể có được trải nghiệm trò chuyện tức thì mà không bị chậm trễ cũng như không gửi 10-20 yêu cầu mỗi giây cho mỗi khách hàng

kịch bản

Khi quá trình xử lý phía máy khách chậm hơn các tình huống khác nhau có thể xảy ra trong trường hợp Thăm dò ý kiến ​​và Truyền trực tuyến

Trong Truyền trực tuyến, các bản cập nhật sẽ tạo thành một hàng dài ở đầu máy khách và ngay khi nhận được sự kiện đầu tiên, máy chủ sẽ gửi sự kiện tiếp theo rồi tiếp theo liên tục cho đến khi kết thúc, sẽ có độ trễ do xử lý kém nhưng sẽ không'

Trong Bỏ phiếu, các quy trình sẽ mất một chút thời gian để cập nhật. Nó vừa làm xong cái này là hỏi cái khác và trả lời ngay. Máy chủ luôn cố gắng hoạt động mạnh mẽ và giữ cho các kết nối phát trực tuyến hoạt động;

Ghi chú. Truyền trực tuyến không tốt hơn Thăm dò ý kiến, Thăm dò ý kiến ​​có thể tốt hơn phát trực tuyến, Tất cả phụ thuộc vào trường hợp sử dụng và hệ thống của bạn

Nguyên tắc chung. Nếu bạn cần cập nhật dữ liệu của mình ngay lập tức [cập nhật trực tiếp] thì bạn muốn sử dụng phát trực tuyến và nếu bạn đang xây dựng bảng điều khiển hơn là theo dõi giá cổ phiếu hoặc có trường hợp sử dụng như vậy ở đây, bạn có thể thích bỏ phiếu hơn vì không có nhu cầu thực sự

David Echo

Theo

1 Tháng sáu 2013

·

2 phút đọc

Các mẫu với Python. Thăm dò một API

Một mẫu mà tôi đã sử dụng khá thường xuyên là thăm dò một api bằng python

Hành vi bỏ phiếu này khá mạnh mẽ và có thể thực hiện một số điều cho bạn

thử - đây là số lần thử mà chức năng sẽ truy cập vào api

initial_delay - đây là lượng thời gian tính bằng giây mà bạn muốn đợi trước khi chạy api

trì hoãn & dự phòng - đây là dự phòng theo cấp số nhân xác định khoảng thời gian chờ giữa mỗi lần thử. Ví dụ: với độ trễ 1 giây và 2 lần lùi với 10 lần thử lại, đây là số lần thử và thời gian chờ giữa mỗi lần thử lại

Thử #1 - 1 giây
Thử #2 - 2 giây
Thử #3 - 4 giây
Thử #4 - 8 giây
Thử #5 - 16 giây
Thử #6 - 32 giây
Thử #7 - 64 giây
Thử #8 - 128 giây
Thử #9 - 256 giây
Thử #10 - 512 giây

Vì vậy, bạn thấy đấy, thời gian có thể phát triển khá nhanh. [Đây là lý do tại sao tham số initial_delay lại quan trọng. ]

success_list - Đây là cách bạn xác định thành công. Khi bạn truy cập một api, thông thường nó sẽ trả về xml hoặc json. Bạn cần hình dung trạng thái thành công trông như thế nào và lấy các trạng thái đó bằng một chức năng khác trong apiwrapper của bạn [ví dụ được sử dụng ở đây là get_status[] ]

Ví dụ: nếu api bạn đang gọi trả về "Hoàn thành phân tích" khi hoàn tất, thì hãy xác định đó là thành công của bạn. Bằng cách này, cho đến khi phản hồi là "Hoàn thành phân tích", hành vi bỏ phiếu sẽ tiếp tục

apifunction, [*args] - Đây là nơi bạn chuyển vào chức năng giao tiếp với api mà bạn đang gọi. *args cho phép bạn thêm vào một số tham số tùy ý

Vì vậy, đây là một ví dụ giả cho chức năng này

a = APIWrapper[]

success_list = [“Hoàn thành phân tích”]

a. poll_api[10, 60, 1, 2, success_list, some_api. run_analysis, tên người dùng, mật khẩu, application_id, dữ liệu]

Bỏ phiếu trong python là gì?

Khả năng thăm dò ý kiến ​​là một tiện ích mạnh mẽ của python được sử dụng để chờ một hàm trả về một điều kiện dự kiến ​​nhất định . Một số trường hợp sử dụng có thể bao gồm. Đợi phản hồi API trả về với mã 200. Đợi tệp tồn tại [hoặc không tồn tại] Đợi khóa chuỗi trên tài nguyên hết hạn.

Làm thế nào để thực hiện một cuộc thăm dò trong python?

Ví dụ. .
ổ cắm nhập khẩu. nhập hệ điều hành
máy chủSocket = ổ cắm. ổ cắm [ổ cắm. AF_INET, ổ cắm. SOCK_STREAM].
địa chỉ ip = '127. 0. 0. 1'.
ổ cắm máy chủ. liên kết [[ipAddress, portNumber]].
pollerObject = chọn. thăm dò ý kiến[].
trong khi [Đúng]. .
cho bộ mô tả, Sự kiện trong fdVsEvent. .
print["Bắt đầu xử lý"]

Sự khác biệt giữa bỏ phiếu và phát trực tuyến là gì?

Điểm chính. Trong Thăm dò ý kiến, đối với phản hồi của máy chủ, mỗi yêu cầu được gửi nhưng khi phát trực tuyến, máy khách sẽ lắng nghe một cách công khai mà không có yêu cầu dữ liệu bên ngoài từ máy chủ . Về phía máy chủ, để phát trực tuyến, nó sẽ không đợi dữ liệu gửi cho mọi yêu cầu mà sẽ đẩy dữ liệu khi nhận thấy bất kỳ thay đổi nào.

Bỏ phiếu so với kéo dữ liệu là gì?

"Thăm dò ý kiến" là yêu cầu câu trả lời. "Kéo" là sử dụng lực để di chuyển [thực tế hoặc theo khái niệm] một thứ gì đó về phía chính mình [một lần nữa, thực tế hoặc theo khái niệm] . Một "thăm dò ý kiến" một máy chủ khi phần mềm trên máy khách định kỳ hỏi máy chủ về điều gì đó. Một dữ liệu "kéo" từ cơ sở dữ liệu sang phần mềm máy khách.

Chủ Đề