【问题标题】:Scheduling events in Ruby on Rails在 Ruby on Rails 中安排事件
【发布时间】:2013-03-30 04:53:16
【问题描述】:

很抱歉,如果这是重复的,我尝试搜索此内容,但不确定要使用什么搜索词并且没有真正找到任何内容。

我有一个 Ruby on Rails 应用程序,它将用于向用户发送文本消息,其中包含指向可能使用 clickatell 的多项选择问题的链接。这些问题有一个与之相关的日期和时间。我想让 ruby​​ on rails 应用程序在指定日期自动将这些 SMS 消息发送到用户的手机。

我真的不知道如何去做这件事。谁能指出我在 ruby​​ on rails 中安排此类事件的大致方向。我不需要一个确切的解决方案,也许有人可以澄清一下这到底是什么,这样我就可以在网上找到一些资源。

谢谢

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    似乎不再发送您的问题?在这种情况下,我不会通过 cronjob 执行此操作。我会这样做:https://github.com/bvandenbos/resque-scheduler

    因此,每当安排一个问题时,您只需将其添加到延迟队列中,resque-scheduler 就会在时间到时将它们移动到正确的工作队列中。

    这样您就不必担心某种轮询 cronjob,这将由 resque-scheduler 自动完成。您还可以免费获得通过 resque 发送短信的异步处理。因此,如果您必须发送大量 SMS,您可以并行运行它们。

    所以它会是这样的:

    1. 保存问题后,您将在延迟队列中排队等待将来发送问题的消息
    2. 当日期到来时,消息被移动到“准备发送”队列,该队列负责收集所有需要发送问题的用户。
    3. 为每个用户在“准备发送”队列中创建另一条消息
    4. “准备发送”队列随后将发送实际的短信

    然后,您可以在“准备发送”队列上运行许多工作人员,并并行发送 SMS。您还可以使用 resque 免费获得错误处理,它将所有导致异常的消息收集到“失败”队列中,然后您可以再次对其进行调试或重新安排

    【讨论】:

    • +1 用于 resque 和 resque-scheduler,我们在完全不同的项目中使用它取得了巨大的成功
    • 很好,这是一个非常有用且详细的回复。感谢您的时间。
    • 任何时候,我都非常喜欢 Resque :)
    【解决方案2】:

    您可以使用whenever 来安排活动。

    【讨论】:

    • 所以我可以使用它来制作应用程序,例如,每 30 分钟检查一次以查看哪些问题可用并发送适当的短信?
    • 是的,它为您设置了一个 cron。我通常设置它。它运行一个 rake 任务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多