2012-07-11 28 views
6

Làm thế nào tôi có thể vượt qua đối tượng yêu cầu django để nhân viên cần tây. Khi cố gắng chuyển đối tượng yêu cầu, nó ném một LỗiDjango-cần tây: Vượt qua yêu cầu Đối tượng với nhân viên

Can't Pickle Input Objects 

Có vẻ như cần tây tuần tự hóa bất kỳ đối số nào được chuyển cho nhân viên. Tôi đã thử sử dụng các phương thức tuần tự hóa khác như JSON.

CELERY_TASK_SERIALIZER = "JSON" 

Nhưng nó không hoạt động.

Có thể định cấu hình cần tây để nó không tuần tự hóa dữ liệu hay không. Hoặc tôi có thể chuyển đổi đối tượng yêu cầu thành chuỗi trước khi chuyển sang công nhân và sau đó chuyển đổi lại thành đối tượng trong công nhân.

Cảm ơn trước ...

+0

Chuyển đổi thành chuỗi và chuyển đổi lại thành đối tượng được gọi là tuần tự hóa. –

Trả lời

9

Bạn không thể dưa đối tượng yêu cầu của Django (xem this question để biết thêm chi tiết). Thay vào đó, bạn nên chuyển các thông tin liên quan từ đối tượng yêu cầu mà bạn cần đến các nhiệm vụ Celery.

Bạn sẽ không gặp vấn đề gì khi truyền thông tin khác cho tác vụ Celery vì hầu hết các đối tượng đều có thể được chọn mà không gặp vấn đề gì.

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