根据当前事件触发未来事件

时间:2010-07-02 11:32:35

标签: ruby-on-rails database events data-structures queuing

我想基于当前正在发生的事件在未来的某个时间触发事件。我不认为音量太高,所以我更关心简单而不是表现。

例如:

  • 事件A发生。我需要事件B发生一天后(不是时间关键)
  • system在db
  • 中存储事件记录
  • 正在进行的进程查看数据库,并执行已准备好的事件B,并将其从db
  • 中删除

这有意义吗?我在rails上使用Ruby - 我想这是一个相当常见的用例

2 个答案:

答案 0 :(得分:2)

使用DelayedJob gem。有关详细信息,请参阅此screen-cast

答案 1 :(得分:1)

是的,这绝对有道理:)。您可能应该查看调度程序或在后台运行的进程。看一看herehere

基本上,每当您完成事件A的执行时,您将在数据库中放入一个条目,该字段指示应该何时运行。正如你所说,你应该安排在后台运行的正在进行的过程可以按步骤安排,也可以轮询和查询数据库,然后像你说的那样继续进行。