2014-06-26 30 views
9

Có ai biết cách kiểm tra qua Javascript hoặc Yêu cầu HTTP hay không, nếu đạt đến hạn ngạch của API Javascript của Google Maps V3 không? Nhận được thông báo lỗi, được hiển thị cho người dùng, sẽ là đủ.Phát hiện giới hạn dung lượng API Google Maps

Chúng tôi đã bật thanh toán và có hạn ngạch cho API Javascript của Google Maps v3 vào khoảng 100.000, nhưng đôi khi chúng tôi phá vỡ nó và đôi khi thậm chí không nhận ra nó. Bây giờ chúng tôi muốn theo dõi truy cập api của chúng tôi với một công cụ như Nagios (có lẽ bằng cách sử dụng các Phantom) để có được một cảnh báo ngay lập tức. Nhưng tôi không thể tìm thấy bất kỳ thông tin về làm thế nào để kiểm tra, nếu hạn ngạch của chúng tôi đã vượt quá.

Update2

Yêu cầu ist tương tự tìm thấy ở đây: How to detect that the 25000 request per day limit has been reached in Google Maps?

Nhưng chỉ có một tham chiếu đến các API Console. Nếu ai đó quản lý để làm một dự phòng cho bản đồ tĩnh bằng cách sử dụng Javascript, tôi có thể sửa đổi kịch bản cho trường hợp của tôi.

Cập nhật

Dưới đây là một ví dụ về sự cục bộ hạn ngạch lỗi nhắn bằng bản đồ google, sẽ xuất hiện cho người dùng thay vì một bản đồ. Tôi muốn để loại bỏ các thùng chứa bản đồ nếu một cái gì đó như thế này xảy ra:

Example of localized quota message

+2

một cách mà công ty bảo vệ chống lại ngưỡng hạn ngạch chỉ bằng cách cho phép người dùng xem bản đồ nếu họ nhấp vào bản đồ mờ mà nói 'xem trên bản đồ' - sau đó chúng tôi thả hình ảnh ra khỏi bản đồ và bắt đầu bản đồ địa điểm. – lfender6445

+0

Bản đồ mờ là một ý tưởng hay và chắc chắn sẽ giúp chúng tôi. Nhưng nó có thể bất tiện cho người dùng. Chúng tôi đã thử với bản đồ tĩnh và khi nhấp vào tải bản đồ. Tuy nhiên, bản đồ tĩnh có hạn ngạch tương tự và do cấp phép, chúng tôi không thể lưu trữ hình ảnh cục bộ. Và luôn luôn có khả năng cho một sự kiện nổi bật, trong đó ăn hết hạn ngạch của chúng tôi vào sáng sớm rồi. – Trendfischer

Trả lời

5

Tôi giả sử bạn muốn tìm hiểu nếu bạn đã vượt quá các Dịch vụ Web API giới hạn yêu cầu Google Maps. Dưới đây là những gì các tài liệu chính thức cho biết: Giới hạn

Cách sử dụng vượt quá

Nếu bạn vượt quá giới hạn sử dụng bạn sẽ nhận được một mã trạng thái OVER_QUERY_LIMIT như một phản ứng.

Điều này có nghĩa là dịch vụ web sẽ ngừng cung cấp phản hồi bình thường và chuyển sang mã trạng thái chỉ trả lại OVER_QUERY_LIMIT cho đến khi thêm việc sử dụng lại được phép. Điều này có thể xảy ra:

  • Trong vòng vài giây, nếu nhận được lỗi vì đơn đăng ký của bạn đã gửi quá nhiều yêu cầu mỗi giây.
  • Một số thời gian trong 24 giờ tới, nếu nhận được lỗi vì ứng dụng của bạn đã gửi quá nhiều yêu cầu mỗi ngày. Thời gian trong ngày tại
    giới hạn hàng ngày cho dịch vụ được đặt lại khác nhau giữa khách hàng và cho mỗi API và có thể thay đổi theo thời gian.

Khi nhận được phản hồi với mã trạng thái OVER_QUERY_LIMIT, ứng dụng của bạn sẽ xác định giới hạn sử dụng nào đã vượt quá. Bạn có thể thực hiện này bằng cách tạm dừng trong 2 giây và gửi lại yêu cầu tương tự. Nếu mã trạng thái vẫn là OVER_QUERY_LIMIT, ứng dụng của bạn đang gửi quá nhiều yêu cầu mỗi ngày. Nếu không, đơn đăng ký của bạn gửi quá nhiều yêu cầu mỗi giây.

Và một mẫu mã:

url = "MAPS_API_WEBSERVICE_URL" 
attempts = 0 
success = False 

while success != True and attempts < 3: 
    raw_result = urllib.urlopen(url).read() 
    attempts += 1 
    # The GetStatus function parses the answer and returns the status code 
    # This function is out of the scope of this example (you can use a SDK). 
    status = GetStatus(raw_result) 
    if status == "OVER_QUERY_LIMIT": 
    time.sleep(2) 
    # retry 
    continue 
    success = True 

if attempts == 3: 
    # send an alert as this means that the daily limit has been reached 
    print "Daily limit has been reached" 

Phần trích dẫn từ tài liệu Google Maps: https://developers.google.com/maps/documentation/business/articles/usage_limits#limitexceeded

TLDR: Thực hiện một yêu cầu, nếu bạn nhận được phản hồi OVER_QUERY_LIMIT, hãy thử lại trong hai giây. Nếu phản hồi vẫn như cũ, bạn đã đạt đến giới hạn hàng ngày.

+3

+1 cho câu trả lời hay, nhưng đó không phải là những gì tôi đang tìm kiếm. Webservice-API khác với API bản đồ google. Ví dụ: mã hóa địa lý có hạn ngạch riêng. Nếu tôi đạt được nó, bản đồ của tôi vẫn được hiển thị rất tốt. – Trendfischer

Các vấn đề liên quan