아니요, 불가능합니다. . events_to_run
메서드에서 반환 현재 시간 (에서 실행해야합니다 모든 이벤트 그것은 온통 반복 할
def tick(t=Time.now)
if (fire_callbacks(:before_tick))
events = events_to_run(t)
events.each do |event|
if (fire_callbacks(:before_run, event, t))
event.run(t)
fire_callbacks(:after_run, event, t)
end
end
end
fire_callbacks(:after_tick)
events
end
이 방법로드 :
이
콜백 및 실행 구성 이벤트를 처리하는 시계 보석의
relevant method을 IT .
events_to_run
이벤트 및 화재 콜백 및
개별 이벤트를 실행 할 수 있도록 event
실행하고 여전히 콜백 해고 한이 방법은 다음과 같이 뭔가를 changeto 할 필요가 :
,536,
def tick(t=Time.now)
if (fire_callbacks(:before_tick))
events = events_to_run(t)
events.each do |event|
run_event_with_callbacks(event)
end
end
fire_callbacks(:after_tick)
events
end
def run_event_with_callbacks(event)
if (fire_callbacks(:before_run, event, t))
event.run(t)
fire_callbacks(:after_run, event, t)
end
end
end
이렇게하면 개별 이벤트를 콜백 콜을 사용하여 실행할 수 있습니다. 또한 개별 이벤트를로드하는 메소드가 필요합니다. 이 같은 아마 뭔가 :
def load_event(job)
# finds only the first event when there are multiple
# events registered for the same job
@events.find { |event| event.job == job }
end
그러나 이벤트가 Manager
에 등록되기 때문에, 올바르게 설정에 정의 된 모든 이벤트로 초기화되는 관리자의 인스턴스를 필요
.
짧게 이야기하기 : 현재로서는 불가능하며 코드 구조를 변경해야 많은 변경이 가능합니다.
저는 Clockwork에 익숙하지 않지만, 추상화 수준을 추가하고 Clockwork 또는 메서드 호출을 원하는 다른 인터페이스를 통해 필요한 메서드를 만들어야합니다. 'Shift.sync'를'REDIS.hset'을 호출하는 메소드에 랩핑 할 수 있습니까? 아니면 Clockwork DSL의 명령 부분입니까? –
아마도 시계 작업 파일에서 실행되는 별도의 스크립트로 이벤트를 추출하십시오. –
나는 Clockwork 그 자체가 내 추상화 수준이 되길 바랬지 만 모든 레이어를 하나씩 감쌀 필요가있다. 팁 주셔서 감사. – chrismanderson