2012-09-26 4 views
1

저는 서버에서 영구적 인 위치로 오디오 파일 (wav)을 가져 오는 회사 프로세스를 작성했습니다. FTP를 사용하여 꽤 똑바로.변환 파일 업로드 하나의 스크립트에서

이제 우리는 이러한 wav 파일을 mp3로 변환하려고합니다. 전송/업로드 프로세스와 변환 프로세스를 하나의 스크립트로 결합하고 싶습니다. 그래서 우리가 그들을 옮길 때, 나는 그들을 처리 할 수 ​​있습니다 (전반적인 전송 속도를 늦추지는 않습니다). 당연히 변환 프로세스가 프로세스 집중적 인 기술 관련 문제가 있으며 실제 변환을 수행하는 세 번째 서버가 필요할 수 있습니다. 우리가 사용할 변환 프로그램은 LAME입니다.

저는 각 스레드가 파일을 전송하고 변환하는 대기열의 일부를 처리 할 수있는 대기열을 사용하는 멀티 스레드 응용 프로그램과 같은 것을 상상하고 있습니다. 따라서 스레드 A는 10-30 개의 파일을 이동시키고 스레드 B는 다른 10-30 개의 파일을 이동시킵니다. A와 B 모두 파일을이 "변환 상자 또는 상자"로 옮기고 일단 변환되면 영구 위치로 이동합니다.

이 방법이 효과가 있습니까? 아니면 더 간단한 방법이 있습니까?

+2

조금 복잡해 보입니다. 내가 상상하는 방식은 "다운로드"프로세스를 갖는 것입니다.이 프로세스의 유일한 책임은 원래 파일에서 파일을 가져 오는 것입니다. 그런 다음 파일을 변환하고 'Completed Files'디렉토리에 둘 수있는 "변환"프로세스가 있습니다. 마지막으로 완료된 파일을 폴링하여 최종 목적지에 복사하는 "전송"프로세스가 있습니다. 본질적으로 같은 일을하는 여러 스레드를 갖는이 업무는 복잡 할 것입니다. 제가 설명한대로, 각 프로세스는 구획화되어있어서 서로에 대해 알 필요가 없습니다. – Jeremy

+0

좋은 지적입니다. 감사. – Antares

답변

0

제레미가 당신을 올바른 방향으로 지적했다고 생각합니다. 나는이 작업을 수행 할 것 :

  1. FTP 파일을
  2. 이 디렉토리 감시자 게이트웨이가 디렉토리, 및 프로세스 들어오는 파일을 볼 구성한 스테이징 디렉토리에 (a good article on directory watchers)
  3. 당신은 몇 가지를 할 수 있습니다 (많은 ColdFusion에서의 메일 서브 시스템의 undelivr 디렉토리와 같은) 다른 디렉토리로 변환하고, 실패 때문에 별도의 조치를 취할 수 있습니다 로그인에 실패 respooling 프로세스의 종류, 또는 공원 파일을
  4. STI는 ck 변환 된 파일을 다른 디렉토리에 복사하고 다른 디렉토리 감시자가 파일을 배포하는 데주의를 기울이거나 DB에 레코드를 작성하여 참조하거나 다음 워크 플로우 단계인지 확인하십시오.