2012-09-14 29 views
6

Hàng đợi đẩy trong App Engine thường là FIFO queue, nhưng như được thấy từ các tài liệu được liên kết, trong trường hợp hàng đợi có quá nhiều tác vụ, trình lên lịch có thể chuyển các tác vụ mới lên đầu hàng đợi trong nỗ lực giảm độ trễ.Hàng đợi kéo trong GAE có biểu hiện hành vi FIFO nhất quán không?

Sự vượt lên trước hàng đợi này có ý nghĩa đối với các ứng dụng được tải nhiều, nhưng điều đó có nghĩa là hành vi FIFO không được đảm bảo nhất quán.

Bây giờ câu hỏi là, làm thế nào về hàng đợi kéo? Các hành vi trên có ý nghĩa trong một hàng đợi đẩy, nhưng ít hơn trong hàng đợi kéo, vì trách nhiệm cho thuê nhiệm vụ từ hàng đợi kéo và trách nhiệm quy mô lên số lượng công nhân rơi vào ứng dụng riêng của mình. Nếu hành vi nhảy trước-of-the-queue không tồn tại trong các hàng đợi kéo, điều đó có nghĩa là hàng đợi kéo luôn thể hiện hành vi FIFO?

Ngoài ra, tôi dường như không tìm thấy bất kỳ tài liệu nào về việc sắp xếp các tác vụ trong official pull queue docs.

Trả lời

1

Không có bảo đảm đặt hàng nào trong hàng đợi kéo.

Mặc dù thông thường các tác vụ có ETA cũ nhất sẽ được cho thuê trước, nhưng điều đó không được đảm bảo. Ứng dụng của bạn sẽ có thể xử lý các nhiệm vụ đang bị xóa khỏi hàng đợi của bạn theo bất kỳ thứ tự nào.

+0

Cảm ơn. Tôi hiểu rằng không có đảm bảo chắc chắn, nhưng làm thế nào điển hình là nhiệm vụ với ETA cũ nhất sẽ được cho thuê đầu tiên? Nói cách khác, chặn bất kỳ sự cố không mong muốn nào (ví dụ: đột biến về độ trễ mạng, trường hợp lỗi, v.v.), hàng đợi kéo có bất kỳ quy tắc đặc biệt nào trên lịch biểu của nó có thể khiến công việc được sắp xếp lại không? –

+0

Tôi không chắc chắn những gì bạn đang ở đây. Lệnh không được đảm bảo, bạn nên giả định rằng các tác vụ sẽ được truy lục theo bất kỳ thứ tự nào. –

0

Đây là vấn đề không phải là trival. Các kỹ sư của Google cần phải tự hỏi mình xem lợi ích cận biên của việc sử dụng những gì tôi sẽ tưởng tượng như một thứ tự không thường xuyên của Trình tự Scheduler Scheduler cho các hàng đợi kéo dài hơn một quá trình kéo hàng đợi có thể dự đoán được.

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