Tôi đang chuyển cấu hình phiên của ứng dụng Kim tự tháp từ cookie
sang ext:memcached
. Ứng dụng của tôi được lưu trữ trên Heroku và tôi đã định cấu hình memcache addon theo their documentation của mình.Tôi có nên cấu hình `session.lock_dir` của Beaker khi sử dụng Memcache trên Heroku không?
Tôi hiểu từ số Beaker documentation rằng việc chỉ định session.lock_dir
là điều cần thiết để ngăn chặn dog pile effect. Để rõ ràng: Tôi phải cung cấp đường dẫn tệp đến thư mục. Beaker sau đó sử dụng điều này như một loại khóa để ngăn chặn nhiều khách hàng tất cả cố gắng để đặt cùng một giá trị cùng một lúc.
Với tôi, điều này nghe có vẻ như kiến trúc xấu. Một trong những ưu điểm chính của memcache là nó hoạt động như một dịch vụ chia sẻ bên ngoài. Ràng buộc các quy trình ứng dụng của tôi vào một khóa ràng buộc đĩa có vẻ giống như cách tiếp cận sai.
Tương tự, trên Heroku, tôi có một hệ thống tệp ephemeral cho mỗi "dyno" (mà tôi hiểu là có ý nghĩa cho mỗi quy trình). Vì vậy, trong khi tôi có thể cung cấp một đường dẫn thư mục lock_dir
, nếu mỗi quá trình sử dụng một thư mục khác nhau, sau đó điều này sẽ bảo vệ tôi khỏi hiệu ứng đống chó?
Tôi không chắc liệu tôi có nên:
- định một lock_dir và không lo lắng về nó
- nỗ lực đến ngã ba Beaker và vá này bằng cách nào đó
Ngoài ra tôi rất muốn biết các ngôn ngữ/khuôn khổ khác sử dụng ở đây. Đây có phải chỉ là vấn đề về Beaker hay các thiết lập khác không bị ràng buộc tập tin bị ảnh hưởng của đống chó?
Xin cảm ơn trước,
James.
Tôi khá chắc chắn rằng chương trình phụ trợ của memcached không yêu cầu 'lock_dir', bạn đã thử nó chưa? –
Xin chào Michael, 'beaker.ext.memcached' yêu cầu lock_dir, khi sử dụng bất kỳ phần phụ trợ nào ngoài' bộ nhớ' hoặc 'cookie'. [Truy nguyên của tôi tại đây] (https://raw.github.com/gist/3278155/d744c1087445b5c18270212796026dbafe9b5760/gistfile1.pytb). – thruflo
Xin lỗi, bình luận cuối cùng của tôi đã không thực sự có ý nghĩa. Phần phụ trợ memcached yêu cầu 'lock_dir'. Traceback tôi đăng được kích hoạt bởi [mã này] (https: // bitbucket.org/bbangert/cốc/src/d1757ad53763/cốc/ext/memcached.py # cl-85). Tôi đã đi qua [thảo luận này về cùng một vấn đề] (https://bitbucket.org/bbangert/beaker/issue/78/clusterable-session). Hình như câu trả lời là: "chỉ định một lock_dir và không phải lo lắng về nó". – thruflo