2017-10-05 8 views
-1

오류 시간을 구문 분석 할 수 없습니다 :루퍼스의 scheduler.at는 Heroku가 로그에 Heroku가에

def checkout_timer time, id, lpn 
    scheduler = Rufus::Scheduler.new 
    time_to_do = time + 1.minute 
    Rails.logger.info "time_to_do: #{time_to_do}, id: #{id}" 
    scheduler.at time_to_do do 
     Rails.logger.info "hello, it's #{Time.now}" 
     reservation = Reservation.find(id) 
     if reservation&&reservation.status == 'Reserved' 
     reservation.destroy 
     Car.where(:lpn => lpn).update_all(:status => "Available") 
     notification = Notification.new(:email => reservation.email, :message => 'You do not check out the car on time !') 
     notification.save 
     end 
    end 
    end 

코드 스케줄러를 호출 :

if user && @reservation1 == [] && @reservation.save 
     return_timer @reservation.expect_return_time, @reservation.id, @reservation.lpn 
     @reservation.update_attribute(:expect_start_time, Time.now) 
     @car = Car.find_by_lpn(@reservation.lpn) 
     @car.update_attribute(:status, "Checkout") 
     format.html {redirect_to @car, notice: 'Rent successfully.'} 
     # format.json { render :show_reserve, status: :reserved, location: @reservation } 

@reservation을 루퍼스 스케줄러를 포함 enter image description here

코드를 .expect_return_time의 값은

에서 가져옵니다.

로컬 컴퓨터에서 올바르게 실행됩니다. 그리고 나는 어제 영웅에 대해 아무런 문제가 없었다는 것을 기억합니다. 그러나이 이상한 문제는 오늘 영웅에게 일어났습니다.

업데이트 :

  • 루비 버전 2.3.4
  • 루퍼스 - 스케줄러 버전 3.4.2
  • ET-Orbi 버전 1.0.6
+0

누군가 도움주세요. 긴급한 소식입니다 –

+0

Heroku 시스템의 rufus-scheduler 버전은 무엇입니까? Ruby의 버전은 무엇입니까? 이러한 정보로 질문을 업데이트하십시오. – jmettraux

+0

또한 Heroku 시스템에 "et-orbi"보석의 버전을 표시하십시오. – jmettraux

답변

0

포스 당신에게 Heroku 사용하기 보석 "et-orbi"1.0.5 버전.

checkout_timer을 호출 할 때마다 새로운 Rufus-Scheduler 인스턴스를 시작하는 것이 리소스 낭비임을 유의하십시오. 그리고 rufus-scheduler 인스턴스가 가비지 콜렉션에 노출되어 있습니다. 작업이 정해진 시간 전에 발생하면 작업이 트리거되지 않습니다.

업데이트 2017년 10월 7일

은 보석 "등-orbi", 버전 1.0.7에서, 루퍼스 - 스케줄러에 의해 사용이 문제에 대한 수정 프로그램이 포함되어 있습니다.

+0

Rufus :: Scheduler.singleton을 사용하는 경우, 예를 들어, 나는 scheduler.in '30s'와 scheduler.in '1minute'를 가지고 있는데, 두 번째 것이 첫 번째 것을 덮어 씁니까? –

+0

아니요, 그렇지 않습니까? 직접 해보십시오 : https : //gist.github. co.kr/jmettraux/8cb63397fe55896933518f2c6e52af34 – jmettraux