在 Ruby on Rails 中安排事件

Scheduling events in Ruby on Rails

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

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

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

谢谢


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

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

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

所以它会是这样的:

  • 保存问题后,您将在延迟队列中排队,以便将来发送问题
  • 当日期到来时,消息被移动到"准备发送"队列,该队列负责收集所有需要发送问题的用户。
  • 对于每个用户,您在"准备发送"队列上创建另一条消息
  • "准备发送"队列将发送实际的短信
  • 然后,您可以在"准备发送"队列上运行许多工作人员,并并行发送 SMS。您还可以使用 resque 免费获得错误处理,它将所有导致"失败"队列中的异常的消息收集起来,然后您可以再次调试或重新调度


    您可以使用任何时间来安排活动。