Как создать метод, который попадает в API с интервалом в одну секунду? - PullRequest
1 голос
/ 07 мая 2011

Я создаю библиотеку, которую будет использовать delayed_job в качестве фоновой службы на heroku.

Смысл метода lib будет заключаться в использовании API для обработки большого количества данных. API, к которому я обращаюсь, имеет ограничение в 600 запросов API Graph за 600 секунд.

При этом я хотел бы знать, можно ли было бы убедиться, что моя отложенная работа не сработает.

Что-то вроде:

requests_made = 0
@items.each do |x|

    if request_made >= 600
        pause for 1 second??????? Is this possible?
    end

    ### HIT THE API
    requests_made = requests_made + 1
end

Возможно ли что-то подобное? Возможна ли пауза? Отложенные задания Heroku будут работать до 4 часов, поэтому я не вижу проблем с тайм-аутом. Мысли?

1 Ответ

1 голос
/ 07 мая 2011

sleep(1), вероятно, самый явный и самый простой метод.Будет ли это проблемой?

Добавлено в ответ на комментарий

Чтобы измерить время, потраченное на вызов API, выполните

start_time = Time.now
call_the_API
spent_time = Time.now - start_time

Тогда вы можете сделать некоторые условия для spent_time.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...