Heroku 플랫폼에 대해 잘 이해하면 HTTP 요청을 처리 할 수있는 응용 프로그램 당 하나의 dyno 만 허용됩니다. Java 응용 프로그램 내에서의 목표는 페이스 북 서버에서 정보를 얻고 그에 따라 처리하는 주기적 프로세스를 1 ~ 2 회 실행하는 것입니다. 백그라운드 작업자 dyno가 웹 요청을 처리 할 수없는 경우 웹 dyno에서 reoccurring 프로세스를 작성하려면 어떻게해야합니까?웹 요청을하는 Heroku Java 응용 프로그램에서 주기적 프로세스를 실행하는 방법
답변
"핸들 HTTP 요청"은 송신 측이 아닌 연결의 수신 측을 나타냅니다. Heroku에서 응용 프로그램은 HTTP 요청을 시작/전송하거나 HTTP 이외의 다른 시스템에 연결하는 HTTP 연결 및 기타 많은 프로세스를 수신하는 단일 웹 프로세스 *를 가질 수 있습니다.
* 참고 : 원하는만큼 많은 Dynos를 할당하여 각 프로세스를 실행할 수 있습니다.
주기적으로 외부 서비스 (예 : Facebook)에 요청하는 프로세스를 실행하려면 Heroku Scheduler Add-on을 사용할 수 있습니다. 그런 다음 결과를 relational or NoSQL data-storage add-ons 중 하나에 저장하거나 CloudAMQP과 같은 메시징 추가 기능을 통해 다른 프로세스에 결과를 보낼 수 있습니다.
알았어. 좋아. 내 유일한 질문은 Heroku 스케줄러 추가 기능을 실행할 수있는 시간 제한이 있습니까? 그것은 합리적인 시간을 허용하는 경우 괜찮을거야하지만 10-15 분 미만이면 응용 프로그램이 실제로 비늘 때 충분한 시간이되지 않을 수 있습니다. –
시간 제한은 없지만 프로세스가 실행되는 동안 비용이 청구됩니다. –
플랫폼에서 제한적일 경우 왜 사용해야합니까?
이 작업을 수행 할 수있는 다른 플랫폼이 있습니다. OpenShift을 사용하여 클라우드에 Java 응용 프로그램을 쉽게 배포 한 다음 제한없이 Java API를 사용할 수 있습니다.
OpenShift도 Heroku와 같은 방법으로 자식을 사용하고 있습니다.
두 가지 모두 PaaS이므로 개념이 완전히 동일하므로 OpenShift를 사용해 보는 것이 쉽다는 생각이 듭니다.
그리고 Google App Engine에 이러한 제한 사항이 있는지 확인할 수도 있습니다.
특정 질문에 대해 도움을주지 못해 죄송합니다. 적어도 "한 명의 경쟁자"에게는 그러한 제한이 없다는 것을 알고 있습니다.
이 제한 사항에 대한 해결 방법이없는 경우 다른 PaaS를 조사 할 가치가 있습니다. Heroku 외부에 다른 서버를 설치하여이 유지 관리 작업을 처리 할 수 있습니까? (백그라운드 프로세스는 데이터베이스 내의 값만 업데이트합니다.) –
@ Ryan Sasson -이 서버를 호스팅하고 배포를 처리 할 대상은 어디입니까? 너는 구름에서도 그것을 필요로하지 않을 것인가? –
- 1. 웹 응용 프로그램에서 exe를 실행하는 방법
- 2. Java 응용 프로그램에서 openssl 명령을 실행하는 방법
- 3. 웹 응용 프로그램에서 스케줄러 유틸리티를 실행하는 방법
- 4. Java 응용 프로그램에서 프로세스를 죽이는 문제
- 5. Java 웹 응용 프로그램에서 Security Manager를 사용해야합니까?
- 6. Java 프로그램에서 명령을 실행하는 방법
- 7. CherryPy에서 웹 요청을하는 방법?
- 8. MySQL에서 주기적 쿼리를 실행하는 가장 좋은 방법
- 9. Java 응용 프로그램에서 웹 메서드를 호출하는 방법?
- 10. heroku 툴바를 실행하는 방법
- 11. .NET 응용 프로그램에서 python 스크립트를 실행하는 방법 ..?
- 12. Java 응용 프로그램에서 명령을 실행하는 방법은 무엇입니까?
- 13. PHP에서 프로세스를 실행하는 방법
- 14. Windows Azure에서 웹 요청을하는 방법
- 15. Java 데스크톱 응용 프로그램에서 호스트에서 PHP 스크립트를 실행하는 방법
- 16. asp.net 응용 프로그램에서 IISWeb.vbs 명령을 실행하는 방법
- 17. 웹 응용 프로그램에서 외부 Java 프로그램 실행
- 18. Java 응용 프로그램에서 프로세스를 제대로 종료 할 수 있습니까? Java 응용 프로그램에서
- 19. Java 웹 응용 프로그램에서 웹 서비스 호출을 조절하는 방법
- 20. Java 프로그램에서 하나 이상의 Java 프로세스를 호출하는 방법
- 21. 램프 웹 응용 프로그램에서 Ruby 스크립트를 실행하는 방법
- 22. asp.net 응용 프로그램에서 프로세스를 실행하려고합니다.
- 23. 다른 스레드의 루프에서 다른 프로세스를 실행하는 방법
- 24. 웹 응용 프로그램에서 인쇄 구현 방법
- 25. 백그라운드 프로세스를 하나씩 실행하는 방법
- 26. ASP.NET에서 긴 프로세스를 실행하는 방법
- 27. PHP에서 별도의 프로세스를 실행하는 방법
- 28. iOS에서 별도의 프로세스를 실행하는 방법
- 29. Android에서 일반 Java 응용 프로그램을 실행하는 방법
- 30. 프로세스 내에서 Heroku 프로세스를 실행하는 간단한 방법이 있습니까?
왜 그 작업을 수행하고 Heroku 스케줄러 추가 기능을 사용하여 하루에 한 번씩 실행하는 독립 실행 형 프로그램을 작성하지 않습니까? – Qsario
나는이 같은 접근법을 조사하고 있었지만 웹 라우팅에서 같은 문제가 발생했습니다. 스케줄러는 본질적으로 주기적으로 실행되는 일회성 프로세스이며 Heroku의 일회성 프로세스는 HTTP 트래픽을 수신 할 수 없습니다. [링크] (https://devcenter.heroku.com)에서 형성 dynos와 일회성 dynos 비교/articles/oneoff-admin-ps) –
웹 요청을 수신하는 프로세스가 필요한 이유를 명확히 할 수 있습니까? 프로세스가 "Facebook 서버에서 정보 얻기"로되어 있다면 프로세스가 Facebook을 호출 할 것이고 그 반대의 방법이 아닌 것처럼 들립니다. 일회성 다이노로 완벽하게 가능합니다. –