使用ruby和sinatra如何在将来安排脚本运行(在不可预测的时间)?

时间:2014-09-06 08:35:54

标签: ruby postgresql sinatra

我正在设计一个提醒类型应用。例如,有人进入一个表格,并且在未来的某一天这样和那样的时间给我打电话,以提醒我一些事情"。

这是一个postgres数据库。显然很多人(希望如此)将会这样做并在将来的不同时间安排不同的事情。

所以,我的问题是如何确保我的应用程序在合适的时间检查数据库中必须执行的操作?我可以:

a)我是否应该在输入时创建一个自动脚本,以便在执行提醒功能所需的时间执行?如果是这样,怎么样?

b)让我的应用程序每分钟检查一次数据库,如果是这样的话怎么样?这似乎是对资源的巨大浪费。

抱歉,我无法为此提供任何代码,但我不知道从哪里开始。所有的帮助感激不尽。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可能想要使用像Sidekiq这样的后台作业框架。 Sidekiq像这样支持scheduled jobs

Notifier.perform_at(a_time_object, message_to_send)   

似乎Sidekiq也是works with Sinatra

答案 1 :(得分:0)

对于特定任务,我更喜欢https://github.com/javan/whenever