작업 대기열에 대해 Resque를 사용하는 Rails 애플리케이션이 있습니다. Resque 작업자 클래스는 "JobDo"내가이 큐에 작업을 넣어하는 스크립트 (jobdo.sh)이 응용 프로그램/노동자/job_do.rb환경 변수가있는 bash 스크립트의 JRuby 문
에 그러나
jruby -e 'load "/home/abc/myapp/app/workers/job_do.rb"; Resque.enqueue(JobDo, Time.now.utc)' >> /home/abc/logs/resque.log 2>&1
을 .. . 나는 같은 로그 파일, 사용자 또는 레일스 응용 프로그램 루트를 사용하지 않는 레일 환경에서이 프로그램을 실행할 수 있기를 원합니다. 나는이 같은 일을 참조 :
export $USER_HOME=/home/abc
export $LOGFILE=$USER_HOME/logs/resque.log
export $SERVER_HOME=/home/abc/myapp
jruby -e 'load "$SERVER_HOME/app/workers/job_do.rb"; Resque.enqueue(JobDo,Time.now.utc)' >> $LOGFILE 2>&1
이 사용자의 편집 $의 USER_HOME 및 $ SERVER_HOME을하자 자신의 환경에서 코드를 실행합니다.
그러나 환경 변수를 사용하기 위해 작은 따옴표와 큰 따옴표를 돌리는 방법을 알 수 없기 때문에이 방법은 효과가 없습니다. 어떻게해야합니까? 이것은 한 변수 중 어느 것도 공백을 포함하지 않기 때문에 작업을해야
export USER_HOME=/home/abc
export LOGFILE=$USER_HOME/logs/resque.log
export SERVER_HOME=/home/abc/myapp
jruby -e "load $SERVER_HOME/app/workers/job_do.rb; Resque.enqueue(JobDo,Time.now.utc)" >> $LOGFILE 2>&1
: