시나리오는 다음과 같습니다. 사용자가 이미지를 업로드하면 서버에서 이미지 크기 조정을 수행하지만이 작업이 완료 될 때까지 기다리지 않고 사용자 즉시. 사용할 수있는 스레드가 있다면 제대로 스레드를 사용하여이 작업을 수행 할 것입니다. 그러나 아는 한 PHP에서는 스레드가 없으므로 어떻게이 목표를 달성 할 수 있습니까? 아이디어와 제안에 감사드립니다.클라이언트에게 응답을 보낸 후 시간이 오래 걸리는 작업을 어떻게 수행 할 수 있습니까?
답변
fork the process (ugly and unreliable)이거나 Gearman과 같은 JobQueue를 사용하십시오.
+1 유용한 링크, 감사합니다! – Igor
@lgor, 동의 함 ,, – bingjie2680
PHP 스크립트를 사용하여이 모든 처리를 수행하고 shell_exec를 사용하여 쉘에서 호출하십시오. 그래서 스크립트는 별도로 실행되며 코드는 주 코드 대신 셸에서 실행하여이 작업을 무시합니다. 작업의 유사한 종류의 여기 내 대답을 참조하십시오 : 어떤 이유로 서버 충돌, 크기 조정이 발생하지 않을 경우
분기는 신뢰할 수 없습니다.
작업을 대기열에 넣고 cron 작업을 사용하십시오. 작업 큐를 생성하는 방법은 여러 가지가 있습니다. 데이터베이스를 사용하여 직접 작성하거나 기존 솔루션을 사용할 수 있습니다.
- 1. 간단하지만 시간이 많이 걸리는 작업을 수행하는 비동기
- 2. UI 프로그래밍에 시간이 오래 걸리는 이유는 무엇입니까?
- 3. 페이지 게시물의 시간이 오래 걸리는 이유는 무엇입니까?
- 4. 시간이 많이 걸리는 JNI 작업을 스레드로 호출
- 5. MVC 3 값을 클라이언트에게 보낸 후 잃어버린
- 6. 초보자 'Dojo/Ajax로이 작업을 수행 할 수 있습니까?'질문
- 7. ASP.NET MVC에서 사용자에게 진행 상황을보고하는 데 시간이 오래 걸리는 작업을 수행하고 있습니까?
- 8. 로딩 시간이 오래 걸리는 웹 페이지는 내 작업의 비스타에서 바로로드됩니다.
- 9. 레코드를 coreData에 저장하는 데 시간이 오래 걸리는 경우 어떻게하면 더 빨리 삽입 할 수 있습니까?
- 10. 서블릿에서 수행 할 작업을 어떻게 식별 할 수 있습니까?
- 11. 자동 매퍼는이 작업을 수행 할 수 있습니까?
- 12. 하나의 루프에서이 작업을 수행 할 수 있습니까?
- 13. OpenGL에서이 작업을 수행 할 수 있습니까?
- 14. 어떤 언어로이 작업을 수행 할 수 있습니까?
- 15. 브라우저에 응답을 보낸 후 코드를 레일에서 실행
- 16. 스키닝으로이 작업을 수행 할 수 있습니까?
- 17. 하나의 쿼리에서이 작업을 수행 할 수 있습니까?
- 18. 하나의 쿼리로이 작업을 수행 할 수 있습니까?
- 19. phpMyAdmin이 쿼리를 표시하는 데 시간이 오래 걸리는 이유는 무엇입니까?
- 20. ASP.NET 라우팅에서이 작업을 수행 할 수 있습니까?
- 21. 파이썬에서 파일 작업을 수행 할 수 있습니까?
- 22. ORM으로이 작업을 수행 할 수 있습니까? - Django
- 23. 어떻게하면 XAML에서이 작업을 수행 할 수 있습니까?
- 24. CSS 메뉴에서이 작업을 수행 할 수 있습니까?
- 25. 이 작업을 쉽게 수행 할 수 있습니까?
- 26. OpenGL을 사용하여이 작업을 수행 할 수 있습니까?
- 27. .NET AppDomains가이 작업을 수행 할 수 있습니까?
- 28. 반성없이이 작업을 수행 할 수 있습니까?
- 29. 하나의 명령으로이 작업을 수행 할 수 있습니까?
- 30. LINQ가이 작업을 수행 할 수 있습니까?
[PHP는 백그라운드 프로세스를 실행할 수 있습니다] 복제본 (http://stackoverflow.com/questions/45953/php-execute-a-background-process) – Gordon