2016-06-29 15 views
5

Khách hàng của chúng tôi đang gặp sự cố với ứng dụng python appengine yêu cầu xử lý hàng đợi công việc để tạo báo cáo và hiển thị ngay sau khi hoàn tất. Cách giải quyết đó đối với sự chậm chạp và thời gian chờ GAE nổi tiếng đã hoạt động tốt cho chúng tôi cho đến gần đây.Google App Engine - Hàng đợi Nhiệm vụ mất quá nhiều thời gian để bắt đầu các tác vụ ngẫu nhiên

Tuần trước, chúng tôi bắt đầu nhận được khiếu nại về thời gian người dùng phải chờ báo cáo. Nó được sử dụng để được nhiều nhất một phút, nhưng bây giờ nó có thể mất hơn 10 phút.

Hơn nữa, tôi không thể tái tạo sự cố, nhưng nhìn vào hàng đợi công việc, tôi có thể thấy rằng các tác vụ đó chỉ đơn giản là không bắt đầu.

Dưới đây là ảnh chụp màn hình của một trong các hàng đợi (không phải là ảnh tạo báo cáo, nhưng sự cố đang xảy ra ở tất cả các hàng đợi).

http://www.clipular.com/c/4829223501430784.png?k=QaP2kedZm6NcvrKzwVSJqq2YI1g

Chúng ta có thể thấy rằng không có nhiệm vụ chạy, nhưng nhiệm vụ duy nhất trong hàng đợi đã không bắt đầu cho đến khi nó hoàn thành 7 phút chờ đợi. Và nhìn vào ETA, nó dự đoán rằng nhiệm vụ nên bắt đầu trong quá khứ. Cuối cùng nó đã đi, nhưng tại sao nó không bắt đầu sớm hơn?

Lý do mà tôi đã loại trừ khả năng:

  • Không đủ tài nguyên hoặc các trường hợp: nó xảy ra ngay cả sau nửa đêm, khi chúng ta có được chỉ là một vài yêu cầu.
  • Cấu hình hàng đợi không hợp lệ: Không phải vậy, chúng tôi có tất cả các cấu hình xếp hàng khác nhau và điều đó xảy ra sau đó. Ví dụ: Tỷ lệ tối đa = 350/s, Kích thước nhóm = 400, Đồng thời tối đa = 400.
+1

Tôi gặp sự cố tương tự nhưng nhiệm vụ của tôi thường mất ít hơn một phút để thực thi. Tuy nhiên vẫn còn khó chịu. –

+1

Xem https://code.google.com/p/googleappengine/issues/detail?id=4901 –

Trả lời

0

Sự cố này đã ngừng xảy ra mà không có bất kỳ hành động nào. Rõ ràng, đó là do một số loại thất bại trong các máy chủ GAE. Vấn đề này kéo dài khoảng hai tuần.

Một hành động có thể giảm thiểu vấn đề, tuy nhiên, là để truyền bá nhiệm vụ của bạn trong hàng đợi riêng biệt, nếu có thể.

--- chỉnh sửa ---

Điều này lại xảy ra. Điều duy nhất chúng tôi có thể làm để giải quyết vấn đề là viết một kịch bản yêu cầu chạy các tác vụ trễ nếu chúng được tìm thấy. Nó chạy trên https://console.cloud.google.com/appengine/taskqueues qua tampermonkey.

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