Tôi đã xem hướng dẫn django-cần tây và tôi nghĩ nó sẽ thực sự giúp tôi chạy các tác vụ nền mà không để người dùng chờ đợi. Tuy nhiên, tôi có một yêu cầu cụ thể trong chương trình như vậy mà khi người dùng nhập vào một ngày, django sẽ có thể làm lịch trình và trì hoãn việc thực hiện một thời gian sau đó. Tôi đã sử dụng chương trình at
trước đây nhưng nó mang lại nhiều vấn đề về quyền. Nhưng khi tôi đọc tài liệu cho Celery, tôi chỉ có thể thấy rằng Celery hỗ trợ cron
như các nhiệm vụ được gọi là @periodic_task
. Tôi chắc chắn rằng nó cũng cung cấp cơ chế giống như at
, nhưng tôi không thể tìm thấy bất kỳ tài liệu nào. Ai có thể chỉ cho tôi một số tài nguyên hay đơn giản chỉ cho tôi biết cách đạt được điều đó? Cảm ơn.Django & Celery: Làm cách nào để lên lịch một công việc chỉ chạy một lần bằng Celery (tương tự như lệnh "at" trong linux)?
6
A
Trả lời
9
Tài liệu nêu rõ rằng bạn có thể schedule tasks to execute at a specific time, sử dụng eta argument.
3
Bạn có thể cung cấp đối số đếm ngược hoặc ETA cho hàm apply_async(). Bằng cách đó, bạn có thể xác định thời gian sớm nhất mà nhiệm vụ sẽ được thực thi, nhưng không phải là nhiệm vụ chính xác (tùy thuộc vào hàng đợi của bạn). Để biết thêm chi tiết, xem here.
+0
trang không tồn tại –
liên kết đối số eta đã chết. [eta] (http://ask.github.io/celery/userguide/executing.html#eta-and-countdown) –