루프가 2 천 개 레코드에서 실행되며 각 레코드에 대해 서버에서 일부 이미지 크기 조정 및 조작이 수행됩니다. 이 프로세스는 작은 레코드 세트를 테스트하는 데는 잘 작동하지만 라이브 서버로 이동하면 50 개 레코드를 일시 중단하고 다시 시작하여 서버 성능이 저하되거나 완전히 종료되지 않도록하고 싶습니다.서버 집약적 인 프로세스를위한 ColdFusion 코드 일시 중지 및 재개
코드는 다음과 같습니다
<cfloop query="imageRecords">
<!--create and save images to server - sometimes 3 - 7 images for each record -->
</cfloop>
내가 말했듯이, 나는 다음 50 개 기록 후 일시 정지이 off 상태로 다시 시작하고 싶습니다. 나는 cfschedule
을 보았지만 이것을 어떻게 작동 시킬지 확신이 없었다.
나는 또한 sleep() 함수를 살펴 보았지만, cfthread
태그 안에 이것을 사용하는 것에 대한 문서가 나와있다. 다른 사람들은 긴 프로세스를 시뮬레이션하기 위해이를 사용하는 방법에 관해 게시했습니다.
그럼, 내가 필요로하는 방식으로 sleep()
을 안전하게 사용할 수 있는지 확신 할 수 없습니다.
서버는 CF9이고 db는 MySQL입니다.
CFTHREAD에서 회전하는 것을 고려 했습니까? – ale
@AlEverett 네, 좋습니다. 나는 실제로 스레드에서 모든 것을 래핑하고 그것을 일시 중지하는 것에 대해 생각하고있었습니다. 그러나 나는 sleep 함수를 루프에 넣고 작동한다. 프로세스를 실행 (폴더를보고 생성 된 이미지를 볼 수 있음) 한 다음 잠자기 한 다음 다시 픽업합니다. 이것이 올바른 방법인지 확실하지 않습니다. –
수면은 단일 스레드 환경에서 정상적으로 작동합니다. 은 5 초의 일시 정지를 제공합니다. –
Busches