【问题标题】:What's the best way to fetch a POP3 server for new mails every 15 minutes?每 15 分钟获取新邮件的 POP3 服务器的最佳方法是什么?
【发布时间】:2010-12-21 23:33:15
【问题描述】:

我正在开发一个应用程序,该应用程序需要每 5-15 分钟获取一个 POP3 帐户以检查并处理新电子邮件。除了每 5-15 分钟自动运行的部分之外,我已经编写了所有代码。

我在 Heroku 上使用 Sinatra、DataMapper 和托管,这意味着 cron 作业是不可能的,因为 Heroku 最多只提供每小时一次的 cron 作业。

我研究了Delayed::Job,它本身不支持Sinatra 或DataMapper,但有解决方法forboth。由于我的 Ruby 知识有限,我无法找到一种方法将这两个分支合并为一个适用于 Sinatra/DataMapper 解决方案的 Delayed::Job。

最初我使用Mailman 来检查具有内置轮询并连续运行的电子邮件,但由于它不是基于 Rack 的,因此无法在 Heroku 上运行。

关于下一步去哪里的任何指示?在你说:一个不同的虚拟主机之前,我应该补充一点,我真的更喜欢坚持使用 Heroku,因为它易于使用(当然,对于上述问题除外)。

【问题讨论】:

    标签: ruby heroku sinatra datamapper delayed-job


    【解决方案1】:

    Heroku 支持CloudMailin

    【讨论】:

      【解决方案2】:

      一个简单的技巧是把你的代码写在一个循环中,然后在它的底部休眠任意长的时间:

      未经测试的示例代码...

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

      如果它必须包含在应用程序的主体中,则使用Thread 将其包装起来,以便线程完成工作。您需要弄清楚您的共享数据结构以将数据传输出循环。 Queue是你的朋友。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多