2011-06-28 12 views
8

Tôi đang đặt một số tác vụ vào hàng đợi công việc và muốn biết khi nào các tác vụ cụ thể được thực hiện. Tôi đã không tìm thấy bất cứ điều gì trong API về gọi lại, hoặc kiểm tra tình trạng của một nhiệm vụ, vì vậy tôi nghĩ rằng tôi muốn xem những gì người khác làm, hoặc nếu có một công việc xung quanh (hoặc chính thức) cách để kiểm tra. Tôi không quan tâm đến nhiệm vụ cá nhân, nếu nó giúp, tôi đang đặt 6 nhiệm vụ khác nhau vào, và muốn biết khi nào tất cả 6 đều hoàn thành.Kiểm tra trạng thái hàng đợi công việc trong Google App Engine

Cảm ơn!

Trả lời

4

API hàng đợi nhiệm vụ REST/JSON mới sẽ cho phép bạn thực hiện việc này.

http://code.google.com/appengine/docs/python/taskqueue/rest.html

này không quy mô cũng đến hàng ngàn nhiệm vụ ...

tôi làm như đường ống API gợi ý mặc dù!

+0

Bạn có thể giải thích cách API hàng đợi nhiệm vụ mới thực hiện điều này không? Bạn có thể NHẬN một tác vụ, nhưng nó dường như không bao gồm bất kỳ loại trạng thái hoặc dấu hiệu thành công hay thất bại nào. –

1

Bạn có thể sử dụng memcache. Sử dụng một khóa duy nhất cụ thể cho nhóm nhiệm vụ này. Đặt số khi bạn khởi động công việc của mình và mỗi công việc sẽ giảm xuống một cách nguyên tử. Khi giá trị là 0, nhiệm vụ của bạn đã hoàn thành. Tác vụ tìm giá trị này bằng 0 có thể gọi lại số gọi lại của bạn.

+2

Điều gì về khả năng memcache có thể biến mất vì nó không được bảo đảm ở lại? Chỉ cần sao lưu nó trong một kho dữ liệu là không đủ vì điều kiện chủng tộc trong quá trình lưu. Làm thế nào để đối phó với điều đó? –

+1

Tôi nghĩ bạn có thể đối phó với các điều kiện chủng tộc khi lưu vào kho dữ liệu bằng cách sử dụng một giao dịch. –