2013-06-05 1 views
0

5 분마다 실행되는 cronjob이 있고 약 600 개의 이미지를 가져와야합니다.cronjob을 통해 mysqldatabase에 600 개의 이미지 업로드

PHP를 사용하여 이미지를 파일 시스템에 저장할 수 없습니다. 이미지 1 장을 저장하는 데 시간이 오래 걸리며 공유 호스팅에서 5 분마다 600 개의 이미지를 업로드 및 삭제할 수 없습니다.

그래서 내부 테이블 하나만 사용하여 별도의 데이터베이스에 업로드 할 생각입니다.

당신은 mysql이 이것에 대처할 수 있다고 생각합니까?

더 좋은 방법이 무엇입니까?

Ty

+0

이미지는 무엇입니까? 어디에서? 어떤 목적으로 사용 되었습니까? –

+0

xml 피드의 이미지 - affiliate site - – webmasters

+0

솔루션을 찾으려고 시도하기 전에 병목 현상이 발생한 위치를 파악해야한다고 생각합니다. –

답변

3

당신이 주장하는 이미지를 저장하면 파일 시스템조차도 대처할 수 없지만 대신 SQL 테이블에 저장하려고합니다. SQL은 파일 시스템에 액세스하는 것보다 속도가 느릴뿐만 아니라 상시 업데이 트에서 테이블에 생성 할 모든 여유를 언급하지는 않습니다. 당신이 당신의 작업을 완수하기에 충분한 마력을 가진 가상 전용 서버를 조사하고 싶어 할지도 모릅니다. 공유 호스팅은 모든 것을위한 것이 아닙니다. 일반적으로 작고 낮은 IO 유형 사이트 또는 더 많은 리소스가있는 프로덕션 환경으로 이전되는 더 큰 사이트 개발에 적합합니다.

2

이미지를 데이터베이스에로드하는 것이 좋습니다. 읽기 속도가 빠르지 않고 실행할 리소스가 너무 많이 필요합니다. Amazon EC2/S3 데이터 스토리지와 같은 외부 웹 스토리지 서비스에 이미지를로드하지 않는 이유는 무엇입니까?

+0

EC2는 스토리지 플랫폼이 아니지만 S3가 좋은 선택이 될 것입니다. –

+0

EC2에 EBS 스토리지 옵션이 있으며 이러한 용도로 EC2를 사용하는 데는 문제가 없습니다. 사실, EBS는 자동으로 S3에 저장됩니다. –

+0

EC2 스토리지는 volititle이며, 그렇습니다. EBS는 또 다른 옵션입니다 –

2

파일 시스템이 그것을 처리 할 수 ​​없다면 동일한 호스트의 mysql 서버가 확실히 동일한 파일 시스템에 액세스 할 수 없습니다. 데이터베이스가 다른 호스트에서 실행되는 경우 네트워크 트래픽으로 인한 추가 오버 헤드가 발생하며 네트워크 연결이이를 처리 할 가능성이 훨씬 적습니다.

+0

600 이미지를 업로드 하시겠습니까? 정상적인 작업인지 아니면 거대한 작업인지 (일반적인 의미) 알려주십시오. 또는 전용 서버의 경우 공원에서 산책을할까요? – webmasters

+0

모든 전용 서버가 동일하지는 않지만 무한한 수의 변형이 있지만이 작업을 '공원에서 도보'로 만들 수있는 구매할 수 있는지 확인하십시오. –

0

요구 사항을 명확하게 설명하지는 않았지만 다음 달에 5 분마다 600 개의 이미지를 다운로드해야한다고 가정합니다. 본인의 경우 파일 시스템에 이미지를 직접 읽고 쓰는 NoSql API (예 : MongoDB)를 찾고 여러 이미지를 한 번에 병렬 처리하는 기능을 제공하기 위해 대기열 API (예 : Gearman)를 구현했습니다.

기본적으로는 다음과 같이 작동합니다 :

  • 당신이 페이로드를 처리하는 직원을 지정는 "페이로드"
  • 로, 이미지의 URL을 대기열에
  • 입력을 필요로 이미지 컬. NoSQL API를 통해 결과 이미지를 다운로드, 크기 조정 및 저장하는 작업이 포함됩니다.

이 솔루션을 사용하면 5 분마다 cron을 수행 할 수 있으며 큐잉 API가 똑똑하면 중복 항목이 없는지 확인할 수 있습니다. 이전 작업에서 끝나지 않은 cron에 대해 걱정할 필요가 없습니다. 단지 작업이 대기열에 항목을 추가하는 것뿐입니다.

또한 하드웨어 설정에 따라 작업자 수를 늘릴 수 있으므로 RAM 또는 CPU가 많지 않은 경우 작업자 제한을 2로 설정하고 확장/축소 할 때 작업자 수를 늘릴 수 있습니다. 근로자 한도에 따라.

또 다른 고려 사항은 이미지가 NFS와 같은 네트워크 파일 시스템 또는 GlusterFS을 고려해야하는 httpd 서비스 외부의 다른 서버에서 액세스되어야하는 경우입니다.

처음에는 더 많은 작업이 필요하지만이 유형의 작업을 처리하는 데 더 긴 저장 수명을 제공합니다.

관련 문제