2014-04-14 4 views
3

현재 거의 변경되지 않는 응용 프로그램 범위에로드되는 일련의 변수가 있습니다.거의 변경되지 않는 응용 프로그램 변수의 cflock

드물게 변경된다는 것은 전화 번호 또는 웹 사이트에 표시되는 간단한 텍스트 값과 같은 문자열이며 일주일에 한 번 또는 한 달에 한 번 변경할 수 있음을 의미합니다.

우리는 이러한 변수를 읽고 있기 때문에 거의 변경되지 않기 때문에 이들 변수를 cflock 내부에 캡슐화해야합니까?

템플릿은 20 개 이상의 정적 변수 인스턴스를 포함 할 수 있으므로 이러한 변수를 cflock 내에 래핑하는 데 많은 오버 헤드가 발생한다고 생각합니다.

이 점에 대한 조언은 크게 받겠습니다.

+1

정확히 어떻게 바꿉니 까? –

답변

4

개인적으로 나는 말할 필요가 없습니다. 이 변수는 본질적으로 상수입니다.

그러나 직접 평가해야합니다. '이 변수들이 파손 된 데이터로 읽히는 결과는 무엇입니까?'라는 질문에 대답해야합니다.

귀하의 예와 같이 요청시 잘못된 전화 번호가 사용 된 경우 이는 재앙입니까? 그것이 당신과 함께 살 수있는 문제라면 아무런 변화도 없을 것입니다. 그러나 계산에 사용되는 변수 또는 부적절한 경우 용인 할 수없는 문제를 일으키는 변수가있는 경우 이러한 변수에 대한 액세스를 잠글 필요가 있습니다. 이 방법으로 필요한 곳에 집중하여 추가 작업을 최소화 할 수 있습니다.

변수를 잠글 필요가없는 경우 사용할 좋은 패턴은 응용 프로그램 범위에 저장된 CFC 인스턴스 내에 저장하는 것입니다. 이 방법으로 CFC에서 모든 잠금을 처리 할 수 ​​있으며 호출 코드는 간단합니다.

0

ACF, Railo 등의 버전에 따라 다음과 같이 데이터를 캐시에 저장하는 것이 좋을 수도 있고 응용 프로그램 범위에 저장하지 않는 것이 좋습니다. 캐시는 다시 시작 등을 통해 더 많은 지속성을 가질 수 있으며, 더 효율적인 방법이 될 수 있습니다.

문서의 cacheput, cacheget, cachedelete 등의 기능을 살펴보십시오. 나는 이것이 CF9와 Railo 3.2에서 추가 된 기능이라고 생각한다.

한 걸음 더 나아간다면 X 시간 동안 사용하는 전체 출력을 캐시 할 수 있으므로 해당 부품이로드 될 때마다 캐시에서 한 번만로드하면됩니다. 당신은 언급합니다.

응용 프로그램 범위에 저장하려는 경우 cflock을 업데이트해야 응용 프로그램 수준에서 잠글 수 있습니다. 그렇게하면 업데이트 스레드가 응용 프로그램 범위를 잠그므로 업데이트를 읽으 려하기 전에 업데이트를 끝내기를 기다려야합니다.

관련 문제