2017-11-08 1 views
1

주로 예약 된 작업을 실행하는 스칼라로 작성된 마이크로 서비스가 있습니다. 연극 앱이 아닙니다. 주 기능은 예약 된 작업을 설정하는 것입니다. 예를heroku에 sbt 프로젝트를 배포 할 때 부팅 시간 초과가 발생했습니다.

import cronish.dsl._ 

object workers { 
    def main(args: Array[String]) : Unit = { 
    val payroll: CronTask = task { 
     println("Syncing Payroll...") 
    } 
    payroll executes "every 5 minutes" 

    } 
} 

위해 나는 Heroku가이를 배포 작업이 예상대로 실행하기 시작하면서, Heroku가가 60 초 후 매 시간을 죽인다.

Syncing Payroll... 
Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch 
Stopping process with SIGKILL 
Process exited with status 137 
State changed from starting to crashed 

나는 official Heroku documentation을 따라갔습니다. 여기 내 build.sbt이

name := "AppName" 
version := "0.1" 
scalaVersion := "2.11.9" 
enablePlugins(JavaServerAppPackaging) 

libraryDependencies += "com.smartsheet" % "smartsheet-sdk-java" % "2.2.2" 
libraryDependencies += "com.github.philcali" %% "cronish" % "0.1.3" 
libraryDependencies += "org.scalaj" %% "scalaj-http" % "2.3.0" 
.... 

처럼 보이는 내가 사용하는 경우 그것은 개발에 완전히 잘 실행

addSbtPlugin("com.heroku" % "sbt-heroku" % "2.0.0") 
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.1") 

뿐만 아니라 plugins.sbt 파일로 Heroku가 플러그인을 모두 추가 한 것입니다 sbt가 실행됩니다. 나는 Heroku가이 서비스가 웹 서버가 될 것으로 기대하고 있으므로 열려있는 포트에 연결하려고 시도하지만이 서비스는 웹 서버가 아니기 때문에 계속 사용할 수 없다고 생각합니다. 그러한 마이크로 서비스를 Heroku에 배치 할 수 있습니까? 사용자 지정 빌드 팩을 사용해야합니까?

+0

heroku의 web-vs worker dynos 개념에 대해 알고 있습니까? https://devcenter.heroku.com/articles/background-jobs-queueing – rethab

+0

그냥 기사를 읽으십시오. Procfile에서 작업자를 지정해야하는 것처럼 보입니다. 이것은 java 어플리케이션에 대한 명령이 java -jar path/to/jar이지만 scala 어플리케이션에는 해당하지 않는다고 전합니다. – satnam

+0

Procfile에'worker : target/universal/stage/bin/{myAppName}'을 넣으려고했으나 프로세스가 실행되고 있지 않은 것처럼 보입니다. – satnam

답변

1

Procfileweb: 대신 worker:을 사용해야합니다. 예를 들어 "

$ heroku ps:scale worker=1 

당신은 당신이 원하는 프로세스 아무것도 ("근로자 "일 필요는 없다)를 이름을 수 있지만 :

worker: target/universal/stage/bin/{myAppName} 

그런 다음 실행하여"노동자 "동력계를 확장 웹 "dynos는 특별히 취급됩니다. Heroku는 포트에 바인딩하여 웹 요청을 처리 할 것으로 기대합니다.

+0

그게 효과가 있습니다! 감사 – satnam

관련 문제