현재 레일즈 응용 프로그램을 만들고 있는데 특정 시간에 특정 작업을 실행하도록 예약하는 방법을 알고 싶습니다.일정 레일 특정 시간에 실행할 작업
예 : 관리자는 아침 8시에 사용자에게 이메일을 보내려하고 이메일을 보내기 위해 일찍 일어나기를 원하지 않습니다. 그러므로 그/그녀는 그 시간에 이메일을 보내도록 작업을 예약하려고합니다.
그래서 특정 시간에 작업을 실행하도록 예약 할 수있는 방법이 있습니까? 감사!
현재 레일즈 응용 프로그램을 만들고 있는데 특정 시간에 특정 작업을 실행하도록 예약하는 방법을 알고 싶습니다.일정 레일 특정 시간에 실행할 작업
예 : 관리자는 아침 8시에 사용자에게 이메일을 보내려하고 이메일을 보내기 위해 일찍 일어나기를 원하지 않습니다. 그러므로 그/그녀는 그 시간에 이메일을 보내도록 작업을 예약하려고합니다.
그래서 특정 시간에 작업을 실행하도록 예약 할 수있는 방법이 있습니까? 감사!
여기서 가장 선호하는 해결책은 Whenever 보석입니다. 그와
, 당신은 어떤 일이, 레이크 작업을 실행하는 방법을 실행, 또는 임의의 쉘 명령 실행을 포함하여, 수행되어야 할 때 지정 schedule.rb
파일이 있습니다 뻔뻔하게,
예 schedule.rb 파일을 복사를 추가 정보 언제든지 :
every 3.hours do
runner "MyModel.some_process"
rake "my:rake:task"
command "/usr/bin/my_great_command"
end
every 1.day, :at => '4:30 am' do
runner "MyModel.task_to_run_at_four_thirty_in_the_morning"
end
every :hour do # Many shortcuts available: :hour, :day, :month, :year, :reboot
runner "SomeModel.ladeeda"
end
every :sunday, :at => '12pm' do # Use any day of the week or :weekend, :weekday
runner "Task.do_something_great"
end
every '0 0 27-31 * *' do
command "echo 'you can use raw cron syntax too'"
end
# run this task only on servers with the :app role in Capistrano
# see Capistrano roles section below
every :day, :at => '12:20am', :roles => [:app] do
rake "app_server:task"
end
나는 매일 이메일을 보내는 것을 포함하여 많은 작업을 위해 사용할 수 있습니다.
감사! 메서드를 저장하기 위해 작업 파일을 만들어야합니까, 아니면 그냥 schedule.rb 파일에 메서드를 추가 할 수 있습니까? 예를 들어 매분마다 특정 메소드를 호출하고 싶습니다. "every.minute do ........ end"를 입력하면됩니까? – user192249
@ user192249 schedule.rb 외의 특별한 파일은 필요하지 않습니다. 모든 작업을 하나 또는 다른 클래스의 클래스 메소드로 만들지 만. 위와 같이'러너 '를 사용하여 호출하십시오. – MrTheWalrus
환상적 !! 정말 고맙습니다! – fuiiii
활성 작업이 동일한 작업을 수행 할 수 있습니까? – dhaliman