2017-07-13 22 views
5

Tôi đang sử dụng hàng đợi Pub/Sub của Google để xử lý các thư giữa các dịch vụ. Một số người đăng ký kết nối với API giới hạn tốc độ.Cách xếp hạng giới hạn Google Cloud Pub/Hàng đợi phụ

Ví dụ: tôi đang đẩy địa chỉ đường phố vào chủ đề pub/sub. Tôi có một chức năng Cloud mà đăng ký (thông qua đẩy) cho chủ đề đó, và gọi ra một dịch vụ mã hóa địa lý giới hạn tốc độ bên ngoài. Lý tưởng nhất, địa chỉ đường phố của tôi có thể được đẩy lên chủ đề không chậm trễ và chủ đề sẽ giữ lại các tin nhắn đó - gọi người đăng ký theo cách có giới hạn tốc độ.

Có cách nào để định cấu hình độ trễ hoặc giới hạn tốc độ phân phối thư không? Việc tăng cửa sổ Ack không thực sự hữu ích: Tôi đã kiến ​​trúc hệ thống này để ngăn các chức năng chạy dài.

Trả lời

2

Một aproach để giải quyết vấn đề của bạn là sử dụng: async.queue

Ở đó bạn có một đồng thời thuộc tính Mà bạn có thể quản lý các giới hạn tốc độ.

// create a queue object with concurrency 2 
var q = async.queue(function(task, callback) { 
    console.log('hello ' + task.name); 
    callback(); 
}, 2); 

// assign a callback 
q.drain = function() { 
    console.log('all items have been processed'); 
}; 

// add some items to the queue 
q.push({name: 'foo'}, function(err) { 
    console.log('finished processing foo'); 
}); 

// quoted from async documentation 
+1

Mục tiêu của tôi là lưu trữ tác vụ trong hàng đợi/pub phụ (nghĩ SNS/SQS), để tôi không cần phải có máy chủ chạy liên tục và có thể sử dụng lambda ngắn. Giải pháp này sẽ yêu cầu một máy chủ chạy dài. – cdstamper

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