2011-08-09 31 views
13

Tôi đã thay đổi cấu hình của ứng dụng và triển khai mã mới cho máy chủ sản xuất. Vì ứng dụng không phân tích các tệp cấu hình và sử dụng các lớp biên dịch sẵn mà tôi cần để cập nhật các tệp bộ nhớ cache.Làm thế nào để vô hiệu hóa đúng bộ nhớ cache trên sản xuất cho ứng dụng Symfony2?

Có các lệnh app/console cache:warmupapp/console cache:clear. Nhưng bộ nhớ cache không được cập nhật sau khi gọi các lệnh này, vì vậy tôi phải xóa thư mục ứng dụng/bộ nhớ cache theo cách thủ công.

Xóa thủ công là hoạt động rất nguy hiểm vì nó không phải là nguyên tử để tôi có thể xóa một phần bộ nhớ cache trong khi yêu cầu và điều này có thể dẫn đến lỗi nghiêm trọng.

Tôi nên tải lại bộ nhớ cache như thế nào?

+1

Điều gì rất tệ t xóa thủ công? – Gigala

+0

Nếu bạn không tải trọng cao, không có gì tệ khi xóa thủ công. Chỉ các quyền đối với các thư mục bộ nhớ cache và nhật ký mới có thể trở thành không hợp lệ. – lisachenko

Trả lời

23

Bạn bỏ lỡ env tham số: app/console cache:clear --env=prod --no-debug

+1

Cảm ơn! Chấp nhận câu trả lời của bạn với một sửa chữa: app/console cache: clear --env = prod --no-debug – lisachenko

+1

Kể từ 2.1 app/console khi không có cờ '--env' được cung cấp, nó sẽ mặc định là' getenv ('SYMFONY_ENV')) 'hoặc' dev'. Ngoài ra nếu '--env = prod' được cung cấp, nó sẽ buộc' --no-debug' Trước 2.1 '--no-debug' cần được truyền một cách rõ ràng' $ env = $ input-> getParameterOption (mảng ('- -env ',' -e '), getenv (' SYMFONY_ENV ')?:' dev '); $ debug = getenv ('SYMFONY_DEBUG')! == '0' &&! $ Input-> hasParameterOption (mảng ('- không gỡ lỗi', '')) && $ env! == 'prod'; 'https : //github.com/symfony/symfony-standard/blob/master/app/console – fyrye

1

tôi tin rằng bạn có thể thử app/console cache:clear --no-warmup

+0

Cảm ơn, nhưng tôi có nghi ngờ rằng đối với tải trọng cao, không phải là ý tưởng hay để xóa cache. Tôi chỉ cần tải lại duyên dáng để định cấu hình. – lisachenko

+0

tôi tin rằng bạn có thể theo dõi bằng 'bộ nhớ cache ứng dụng/giao diện điều khiển: xóa ' – Ascherer

0

Để xóa bộ nhớ cache và ngay lập tức truy cập vào dữ liệu sửa chữa của tôi là

sudo app/console cache:clear --env=prod --no-warmup --no-debug 

sử dụng lệnh này sẽ tắt debug và không có thời gian khởi động trước khi dữ liệu có thể truy cập lại được

+1

hãy nhớ rằng cờ '--no-warmup' ngăn không cho bộ nhớ cache dựa trên môi trường mới được tạo sau khi' cache: clear' hoàn tất . Độ trễ (tạo bộ nhớ cache) sẽ xảy ra khi ứng dụng được chạy lần đầu tiên thay thế. – fyrye

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