Я использую Resque-статус Resque/Redis ...Как выполнить вывод% из resque-status?
https://github.com/quirkey/resque-status
Я в принципе хочу, чтобы создать новый метод Синатры .. что-то вроде ниже. У меня только 2 JobsWithStatus, чтобы он мог либо вернуть оба, либо конкретный, я действительно не забочусь.
post '/getstatus' do
# return status here of all kinds (or specific)
end
Тогда я хочу, чтобы вывести% полный с помощью JQuery на веб-интерфейсе с помощью таймера опроса, который проверяет состояние через каждые 5 секунд.
Это то, что у меня есть
post '/refresh' do
job_id = PostSaver.create(:length => Forum.count)
status = Resque::Status.get(job_id)
redirect '/'
end
Это говорит в документации я могу просто использовать status.pct_complete, но он всегда возвращает 0? Даже тогда я новичок в рубине и даже если переменная показала правильную% полной, я не уверен, как заставить эту переменную работать внутри отдельной записи sinatra (в/getstatus, а не в/refresh).
Я попробовал это, однако, и он постоянно возвращается 0
post '/refresh' do
job_id = PostSaver.create(:length => Forum.count)
status = Resque::Status.get(job_id)
sleep 20
status.pct_complete.to_s
end
спасибо, сэр! Отлично. – Tallboy
Кстати, сон был таким же, как тест, чтобы дать% age время не быть 0, я буду иметь это в отдельном синатра-методе. Это основной вопрос о том, как сделать переменную 'status' в методе '/ refresh' доступной где-то в другом месте, например метод '/ getstatus'? – Tallboy
Как правило, вы не собираетесь делиться переменными между действиями. Исключение было бы, если бы вы выполняли действие от другого (что может быть не то, что вы можете сделать даже в синатре). Поскольку это рубин, вы всегда можете определить какой-то метод статуса и просто вызвать его. Я кое-что отредактирую, чтобы вы могли понять, что я имею в виду. –