基于当前事件触发未来事件

发布于 2024-09-08 03:34:34 字数 243 浏览 7 评论 0原文

我想根据当前正在发生的事件在将来的某个时间触发一个事件。我不期望音量太高,所以我更关心简单性而不是性能。

例如:

  • 事件A发生。我需要事件 B 在一天后发生(时间要求不高),
  • 系统在数据库中存储事件记录,
  • 正在进行的过程会查看数据库,并执行准备好的事件 B,并将它们从数据库中删除,

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

i would like to trigger an event sometime in the future based on an event that is currently happening. I do not expect the volume to be too high, so i care a lot more about simplicity than performance.

For example:

  • event A happens. i need event B to happen a day later (not time critical)
  • system stores a record of event in db
  • ongoing process looks through the db, and executes the event Bs that are ready, and removes them from db

Does this make sense? I am using Ruby on rails - I imagine this is a fairly common usecase

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伊面 2024-09-15 03:34:34

使用 DelayedJob gem。请参阅此屏幕广播了解更多详细信息。

Use the DelayedJob gem. Refer to this screen-cast for more details.

唯憾梦倾城 2024-09-15 03:34:34

是的,这绝对有道理:)。您可能应该查看调度程序或在后台运行的进程。看看这里和< a href="http://inventivelabs.com.au/weblog/post/scheduling-periodic-tasks-in-a-rails-application/" rel="nofollow noreferrer">此处

基本上,无论何时完成执行事件 A 时,您将在数据库中放入一个条目,其中有一个字段指示它何时应该运行。正如您所说,您正在进行的进程应该安排在后台运行,可以分步安排,也可以进行轮询并查询数据库,然后像您所说的那样从那里继续进行。

Yes it absolutely makes sense :). You should be probably looking at a Scheduler or a process that runs in the background. Take a look here and here

Basically, whenever you finish executing your event A, you will be putting an entry in the database with a field indicating when it should run. As you say, your ongoing process which should be scheduled to run in the background can either be scheduled in steps or do a polling and query the DB and carry on from there like you've said.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文