Tôi đang sử dụng các nhiệm vụ cần tây định kỳ với Django. Tôi đã từng có tác vụ sau trong tệp app/task.py của mình:Hàng đợi xếp hạng cần thiết bao gồm các nhiệm vụ lỗi thời
@periodic_task(run_every=timedelta(minutes=2))
def stuff():
...
Nhưng bây giờ tác vụ này đã bị xóa khỏi tệp app/tasks.py của tôi. Tuy nhiên, tôi tiếp tục thấy cuộc gọi đến nhiệm vụ này trong nhật ký cần tây của mình:
[2013-05-21 07:08:37,963: ERROR/MainProcess] Received unregistered task of type u'app.tasks.stuff'.
Có vẻ như lịch trình đánh dấu cần tây mà tôi sử dụng không cập nhật hàng đợi. Đây là cách trình lập lịch biểu được xác định trong tệp project/settings.py của tôi:
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
Khởi động lại nhân viên cần tây không giúp được gì. FYI, tôi sử dụng một nhà môi giới Redis.
Làm cách nào để tôi có thể xóa hoặc cập nhật hàng đợi cần trục để các công việc cũ hơn không được gửi cho công nhân cần tây của tôi?
Tôi nghĩ bạn cũng phải xóa mục nhập cơ sở dữ liệu cho lịch biểu. Bạn có thể làm như vậy từ quản trị django. – Ngenator
Xin chào Regis, bạn đã quản lý để giải quyết vấn đề này chưa. Tôi có cùng một vấn đề. @Ngenator - giải pháp của bạn là –
Sự cố có thể nằm trong máy chủ redis. Kể từ khi các nhiệm vụ cần tây là một đối tượng ngâm đã được đẩy vào máy chủ redis, redis giữ giữ các nhiệm vụ lỗi thời. Khởi động lại máy chủ redis hoặc gọi hàm purge của tác vụ. –