문제

비동기 처리가있는 Rails 앱이 있으며 생산 모드에서 작동하는 데 어려움이 있습니다. 나는 다음과 같은 응용 프로그램의 근본에서 Starling을 시작합니다.

starling -d -P tmp/pids/starling.pid -q log/

그런 다음 이렇게 작업을 시작합니다

./script/workling_client start -t

처음으로이를 실행했을 때 개발 데이터베이스가 없어서 불만을 제기 했으므로 개발 데이터베이스를 만들었고 작업을 다시 시작할 때 오류가 사라졌습니다. 하지만 실제로 비동기 프로세스를 실행하려고 할 때이 메시지를 log/production.log로받습니다.

Workling::QueueserverNotFoundError (config/workling.yml configured to connect to queue server on localhost:15151 for this environment. could not connect to queue server on this host:port. for starling users: pass starling the port with -p flag when starting it.

그래서 나는 달린다

sudo killall starling

그런 다음 다음과 같이 응용 프로그램의 루트에서 Starling을 다시 시작하십시오.

starling -d -P tmp/pids/starling.pid -q log/ -p 15151

잘 작동하는 것 같지만이 스크립트/workling_client start -t로 다시 작업을 시작하려고 할 때 콘솔 에서이 메시지를받습니다.

/var/rails-apps/daisi/vendor/plugins/workling/lib/workling/clients/memcache_queue_client.rb:68:in `raise_unless_connected!': config/workling.yml configured to connect to queue server on localhost:22122 for this environment. could not connect to queue server on this host:port. for starling users: pass starling the port with -p flag when starting it. If you don't want to use Starling, then explicitly set Workling::Remote.dispatcher (see README for an example) (Workling::QueueserverNotFoundError)

그래서 나는 워크링 플러그인 내부의 config/workling.yml 파일을 변경하여 15151 년에 생산 및 개발을 듣게 만들었습니다. 그럼 효과가 없었습니다. 그런 다음 22122에서 두 가지를 시도했지만 여전히 주사위가 없어서 무작위를 시도했습니다. 포트이지만 작업에 넣은 내용에 관계없이 여전히 동일한 동작을 제공합니다.

도움이 되었습니까?

해결책

대답은 Starling이 다음과 같이 시작해야한다는 것입니다.

RAILS_ENV=production ./script/workling_client start -t
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top