Lỗi đệ quy cần tây: vượt quá độ sâu đệ quy tối đa trong khi gọi một đối tượng python
Show
原因:celery会使用redis数据库,这时有可能是因为数据库连接redis数据库的密码错误导致的。确认一下密码。 原来的配置文件:
celery后台发生异常 解决-修改配置文件:
其中xxxxx是密码,密码前必须加冒号 再重启celery
运行: Lần đầu sử dụng Django Celery, mới đối với Django và Celery Dưới đây là những gì tôi đã cố gắng cho đến nay. Tôi nhận được lỗi sau RuntimeError tại /contacts/upload độ sâu đệ quy tối đa vượt quá Tôi đang sử dụng SQS và trình môi giới tin nhắn cài đặt. py
nhiệm vụ. py
lượt xem. py
Ai đó có thể vui lòng giúp tôi hiểu những gì tôi đang làm sai ở đây. Cảm ơn bạn Celery đặt mục tiêu trở thành một giải pháp linh hoạt và đáng tin cậy, tốt nhất để xử lý một lượng lớn tin nhắn theo kiểu phân tán, đồng thời cung cấp cho các hoạt động các công cụ để duy trì một hệ thống như vậy Celery có một cộng đồng người dùng và cộng tác viên lớn và đa dạng, bạn nên tham gia cùng chúng tôi trên IRC hoặc our mailing-list. Để đọc thêm về Cần tây, bạn nên truy cập trang web của chúng tôi Mặc dù phiên bản này tương thích ngược với các phiên bản trước nhưng điều quan trọng là bạn phải đọc phần sau If you use Celery in combination with Django you must also read the django-celery changelog Phiên bản này được hỗ trợ chính thức trên CPython 2. 5, 2. 6, 2. 7, 3. 2 và 3. 3, cũng như PyPy và Jython
Lưu ý quan trọng¶Nhóm kết nối môi giới hiện được bật theo mặc định¶Giới hạn mặc định là 10 kết nối, nếu bạn có nhiều luồng/luồng xanh sử dụng kết nối cùng lúc, bạn có thể muốn điều chỉnh giới hạn này để tránh tranh chấp Xem cài đặt CELERY_RESULT_EXCHANGE = 'celeryresults2'3 để biết thêm thông tin Cũng lưu ý rằng các tác vụ xuất bản sẽ được thử lại theo mặc định, để thay đổi mặc định này hoặc chính sách thử lại mặc định, hãy xem CELERY_RESULT_EXCHANGE = 'celeryresults2'4 và CELERY_RESULT_EXCHANGE = 'celeryresults2'5 Rabbit Kết quả phụ trợ. Exchange không còn tự động xóa¶Trao đổi được sử dụng cho các kết quả trong chương trình phụ trợ kết quả Rabbit (AMQP) đã từng đặt cờ auto_delete, điều này có thể dẫn đến tình trạng tương tranh dẫn đến cảnh báo khó chịu Đối với người dùng RabbitMQ Các trao đổi cũ được tạo bằng cờ auto_delete được bật phải bị xóa Lệnh camqadm có thể được sử dụng để xóa trao đổi trước đó 1Thay thế cho việc xóa trao đổi cũ, bạn có thể định cấu hình tên mới cho trao đổi CELERY_RESULT_EXCHANGE = 'celeryresults2' Nhưng bạn phải đảm bảo rằng tất cả khách hàng và nhân viên đều sử dụng cài đặt mới này để họ được cập nhật để sử dụng cùng một tên trao đổi Giải pháp treo công nhân (nhưng phải bật thủ công)¶Cài đặt CELERYD_FORCE_EXECV đã được thêm vào để giải quyết vấn đề về bế tắc bắt nguồn từ các luồng và ngã ba được trộn lẫn với nhau 3Cài đặt này được khuyến nghị cho tất cả người dùng sử dụng nhóm prefork, nhưng đặc biệt là người dùng cũng sử dụng giới hạn thời gian hoặc cài đặt nhiệm vụ tối đa cho mỗi con
Kích hoạt tùy chọn này sẽ dẫn đến một hình phạt nhẹ về hiệu suất khi các quy trình nhân viên con mới được bắt đầu và nó cũng sẽ tăng mức sử dụng bộ nhớ (nhưng nhiều nền tảng được tối ưu hóa, do đó tác động có thể là tối thiểu). Xem xét rằng nó đảm bảo độ tin cậy khi thay thế các quy trình công nhân bị mất, nó đáng giá
Tối ưu hóa¶
Thay đổi dòng thời gian ngừng sử dụng¶Loại bỏ¶
Các mô-đun không dùng nữa¶
Tin tức¶Hỗ trợ múi giờ¶Cần tây hiện có thể được định cấu hình để coi tất cả các ngày đến và đi là UTC và múi giờ địa phương có thể được định cấu hình Tính năng này chưa được bật theo mặc định, vì việc bật hỗ trợ múi giờ có nghĩa là các công nhân đang chạy các phiên bản trước 2. 5 sẽ không đồng bộ với các công nhân được nâng cấp Để bật UTC, bạn phải đặt 91 9Khi UTC được bật, ngày và giờ trong thông báo tác vụ sẽ được chuyển đổi thành UTC, sau đó được chuyển đổi trở lại múi giờ địa phương khi nhân viên nhận được Bạn có thể thay đổi múi giờ địa phương bằng cài đặt 92. Nên cài đặt thư viện pytz khi sử dụng múi giờ tùy chỉnh, để luôn cập nhật định nghĩa múi giờ, nhưng nó sẽ dự phòng cho định nghĩa hệ thống của múi giờ nếu cóUTC sẽ được bật theo mặc định trong phiên bản 3. 0 Ghi chú django-celery sẽ sử dụng múi giờ địa phương như được chỉ định bởi cài đặt 93, nó cũng sẽ tôn trọng cài đặt USE_TZ mới được giới thiệu trong Django 1. 4Bộ nối tiếp bảo mật mới sử dụng ký mã hóa¶Một bộ nối tiếp mới đã được thêm vào để ký và xác minh chữ ký của thư Tên của serializer mới là 94 và cần cấu hình bổ sung để hoạt động (xem Bảo mật ). Xem thêm Bảo vệ Được đóng góp bởi Mher Movsisyan Cài đặt CELERY_RESULT_EXCHANGE = 'celeryresults2' 1 mới¶Cài đặt mới này cho phép cấu hình sửa đổi các lớp tác vụ và thuộc tính của chúng Cài đặt có thể là một lệnh hoặc danh sách các đối tượng chú thích lọc các tác vụ và trả về bản đồ các thuộc tính để thay đổi Ví dụ, đây là chú thích để thay đổi thuộc tính 96 cho tác vụ 97 7hoặc thay đổi tương tự cho tất cả các nhiệm vụ 8Bạn cũng có thể thay đổi các phương thức, ví dụ như trình xử lý 98 0Nếu bạn cần linh hoạt hơn thì bạn cũng có thể tạo các đối tượng lọc các tác vụ để chú thích 1CELERY_RESULT_EXCHANGE = 'celeryresults2' 2 cung cấp tác vụ hiện đang thực thi¶Proxy 70 mới sẽ luôn cung cấp tác vụ hiện đang thực thiThí dụ 4Trước đây, bạn phải nhập 71 tại đây, điều này có thể gây khó chịu cho các tên nhiệm vụ dàiGhi chú Điều này sẽ không hoạt động nếu chức năng tác vụ được gọi trực tiếp (tôi. e. , 72). Để làm việc đó phải sử dụng 73. 74Trong những tin tức khác¶
Sửa lỗi¶
|