2012-06-10 4 views
2

저는 Yesod 응용 프로그램을 작성하고 있지만 웹 이외의 여러 서비스도 포크해야합니다. (UDP 리스너, TCP 수신 대기 포트 등)Yesod 응용 프로그램에 '항상 실행중인'스레드 추가 위치

내 응용 프로그램이 'yesod devel'에서 실행되는지 아니면 프로덕션 환경에서 배포되는지에 관계없이이 기능이 원활하게 작동하도록 포크로 연결하는 올바른 위치는 어디입니까?

감사합니다.

크리스.

P. 난 단지 pseudo-Main을 추가하기를 원한다. 이것은 웹 서버가 WAI를 통해 앱을 실행하는 곳에서 (서비스 시작시) 갈라지게 될 것이다.

답변

3

비계 Application.hs 파일의 makeApplication 함수에 넣어야합니다.

이 기능은 1를 시작 웹 응용 프로그램의 모든 인스턴스에 대해 한 번 실행됩니다, 당신은 거의 항상에만 응용 프로그램의 인스턴스를 실행하기 때문에, 이것은 당신이 그것을해야하는 장소입니다.

같은 프로세스에서 동일한 WAI 응용 프로그램의 여러 인스턴스를 이론적으로 실행할 수 있습니다. 다른 포트에서 수신 대기하는 두 개의 인스턴스가 필요하지만 기본적으로 이는 결코 발생하지 않습니다.