2013-06-10 18 views
8

Tôi có một ứng dụng web được viết bằng Flask hiện đang chạy trên IIS trên Windows (không hỏi ...).Thời gian chờ nhiệm vụ của Celery/giới hạn thời gian cho các cửa sổ?

Tôi đang sử dụng cần tây để xử lý một số xử lý không đồng bộ (truy cập cơ sở dữ liệu chậm và tạo báo cáo).

Tuy nhiên, khi cố gắng thiết lập một số hành vi để xử lý lỗi, tôi đi qua này trong docs:

"Thời gian giới hạn hiện không làm việc trên Windows và các nền tảng khác không hỗ trợ tín hiệu SIGUSR1 . "

Vì DB có thể rất chậm, tôi thực sự muốn có thể chỉ định hành vi hết thời gian cho nhiệm vụ của mình và yêu cầu họ thử lại sau khi DB có thể không được giao nhiệm vụ. Cho rằng ứng dụng, vì nhiều lý do, phải được phục vụ từ Windows, có giải pháp nào cho việc này không?

Cảm ơn bạn rất nhiều vì đã giúp đỡ bạn.

Trả lời

0

Dường như không có bất kỳ giải pháp nào được tích hợp sẵn cho điều này trong Celery. Có thể bạn có thể mã này vào công việc của bạn trực tiếp? Nói cách khác, trong mã python của bạn, bắt đầu một bộ đếm thời gian khi bạn bắt đầu nhiệm vụ, nếu nhiệm vụ mất quá nhiều thời gian để hoàn thành, hãy đưa ra một ngoại lệ và gửi lại công việc cho hàng đợi một lần nữa.