Какой лучший способ получать POP3-сервер для новых писем каждые 15 минут? - PullRequest
0 голосов
/ 22 декабря 2010

Я разрабатываю приложение, которое должно получать POP3-аккаунт каждые 5-15 минут, чтобы проверять новое письмо и обрабатывать его.Я написал весь код, за исключением части, где он автоматически запускается каждые 5-15 минут.

Я использую Sinatra, DataMapper и хостинг на Heroku, что означает, что задания cron исключены, потому что только Herokuв лучшем случае предоставляет почасовые задания cron.

Я изучил Delayed :: Job, который изначально не поддерживает ни Sinatra, ни DataMapper, но есть обходные пути для и .Поскольку мои знания Ruby ограничены, я не смог найти способ объединить эти две вилки в одно работающее решение Delayed :: Job for Sinatra / DataMapper.

Изначально я использовал Mailman для проверкиэлектронные письма со встроенным опросом и работающие непрерывно, но поскольку они не основаны на стойке, они не работают на Heroku.

Есть ли какие-либо указатели на то, что делать дальше?Прежде чем вы скажете: другой веб-хост, я должен добавить, что я действительно предпочитаю придерживаться Heroku из-за его простоты использования (за исключением, конечно, для вышеуказанного вопроса).

Ответы [ 2 ]

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

Heroku поддерживает CloudMailin

1 голос
/ 22 декабря 2010

Простой трюк состоит в том, чтобы написать свой код, содержащийся в цикле, а затем спать в его нижней части столько, сколько вы хотите:

Не проверенный пример кода ...

loop do
    do_something_way_cool()
    sleep 5 * 60 # it's in minutes
end

Если он должен содержаться в основном тексте приложения, используйте Thread, чтобы обернуть его так, чтобы поток выполнял свою работу. Вам нужно выяснить ваши общие структуры данных, чтобы перенести данные из цикла. Queue ваш друг там.

...