우리는 최근 서버에 업로드되어 저장되는 문서의 미리보기 생성 - 소프트웨어에 새로운 기능을 추가했습니다. 이를 다음과 같이 수행했습니다.타이머 서비스
- 사용자가 문서를 업로드합니다.
- 사용자가 문서 정보 카드를 열면 최근에 업로드 한 문서의 미리보기가 실행됩니다 (미리보기 생성에 대한 정보는 db 테이블에 저장됩니다).
- 30 초마다 Google 서비스가 시작되고 미리보기 테이블을 검토하고 미리보기 생성 절차를 시작합니다.
지금 직면하고있는 문제는 미리보기 생성을위한 새로운 코드가 기존 코드를 사용하고 Word 또는 Excel 프로세스가 "고정"되는 경우가 있습니다. 미리보기 중지 및 모든 미리보기 생성은 Word, Excel 프로세스 (Microsoft Office 문서의 미리보기 테스트)가 종료 될 때까지 "보류"모드로 유지됩니다. 프로세스를 종료하면 미리보기 생성이 계속됩니다.
미리보기 생성이 시작된 후 1 분 이상 서비스가 대기하는 경우 프로세스를 중단하고 다른 문서에 대한 미리보기 생성을 계속하도록 서비스에 타이머를 구현할 생각이었습니다.
내가 가진 주요 문제는 우리가 다른 문서와 같이 프로세스를 분리하기 위해 기존 코드로 "이동"할 수 없다는 것입니다 (예를 들어, Process.ini 파일을 통해 GhostScript로 .ps 파일을 구현했습니다. es).
레거시 코드 호출을 "프로세스 화"하는 방법에 대한 아이디어가 있습니까?
분명히하기 위해 "이전 코드를 호출하여 프로세스를 분리 할 수는 없습니다."라고 말했습니다. 이것은 비동기 스레드에서 호출을 래핑 할 수 없으며 잠시 동안 해당 스레드의 상태를 확인하고 스레드가 제 시간에 완료되지 않으면 스레드를 중단 할 수 있음을 의미합니까? 이것은 귀하의 질문에 대한 즉각적인 대답으로 나를 때린 것입니다,하지만 당신의 제한된 어떤 방식으로 당신이 이것을 할 수 없다면 당신은 그것에 대해 자세히 설명해 주시겠습니까? – joshlrogers
예, 맞습니다. 비동기 스레드의 레거시 코드로 호출을 래핑 할 수 없습니다. 그것은 내가 처음에하고 싶었지만 할 수 없었던 것입니다. – brokenisfixed