在Ruby on Rails中调度事件

很抱歉,如果这是重复,我试着搜索这个,但不确定使用什么搜索条件,并没有真正找到任何东西。

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

我真的不知道怎么会这样做。 任何人都可以指向我的方向,以便在轨道上的ruby中安排这样的事件。 我不需要一个确切的解决方案,也许如果有人能够澄清这究竟是什么,那么我可以在网上找到一些资源。

谢谢

似乎发出你的问题不是重新审理? 在这种情况下,我不会通过cronjob这样做。 我会这样做: https : //github.com/bvandenbos/resque-scheduler

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

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

所以它会像这样:

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

然后,您可以在“准备发送”队列中运行许多工作人员并将SMS同时发送出去。 您还可以使用resque免费获得error handling,它会导致在“故障”队列中导致exception的所有消息,然后您可以再次调试或重新计划

您可以使用随时安排事件。