laravel app가 있습니다. 4 시간마다 실행되는 cronjob을 사용하고 csv 파일을 가져 와서 데이터베이스에 저장합니다.인터럽트를 사용하여 파일 가져 오기 - laravel
제한된 시간 (300 초 최대 실행 시간, 60 초 CPU 시간)이 있습니다. 가져 오기 스크립트는 많은 CSV 파일 (400 개 이상)을 가져와야합니다.
시간이 다 떨어지기 전에 중단하고 가져 오기 스크립트를 다시 호출하는 방법이 있습니까? 또는 파일을 안전하게 가져올 수 있도록이 문제를 어떻게 해결할 수 있습니까?
작업 스케줄러를 사용합니다. 따라서 모든 "가져 오기 작업"을 대기열 (일반적으로 데이터베이스 기반)에 넣은 다음 하나씩 가져 오기 작업을 차례로 실행합니다. 그것은 작업 부하를 세분화합니다. 이제 제어 문자 만 갖도록 cron 작업을 구현할 수 있습니다. x 분마다 트리거되고 처리 할 작업이 있는지 확인합니다. 그렇다면 가져 오기 작업을 시작하고 종료하지 않으면 가져 오기 작업을 시작합니다. 중요한 부분은 제어 및 가져 오기 작업을 분리하는 것입니다. – arkascha
아마존 또는 iron.io와 같은 타사 대기열 서비스를 사용하면 더 나은 결과를 얻을 수 있습니다. – madankundu
두 가지 의견에 감사드립니다. @arkascha : 나는 당신의 제안으로 계속 노력할 것입니다. 저를 올바른 방향으로 안내해 주시겠습니까? 예를 들어 가져올 파일 이름이있는 대기열로 가져 오는 가져 오기 작업 클래스가 생깁니다. 같은 파일이 대기열에 제출되는 경우 신경 써야합니까? 작업을 큐로 푸시해야하는시기는 언제입니까? 한 가지 더 : 큐에서 작업을 어떻게 수행 할 수 있습니까? 데몬 대기열 작업자를 실행 하시겠습니까? (죄송합니다. laravel을 처음 사용하고 문서를 살펴 보았지만 여전히 이러한 질문이있었습니다.) – Seer