【问题标题】:How can I open an auction at a scheduled time automatically?如何在预定时间自动开启拍卖?
【发布时间】:2014-08-11 02:07:49
【问题描述】:

我正在构建一个简单的 Rails 拍卖网站。

我的拍卖有一个设置opening_time 属性,我希望系统在它们应该打开它们时自动打开它们。

@auction.update_column(:status, 'open')

我可以每秒“ping”后端以打开所有“需要打开”的拍卖,但这真的很浪费,而且似乎是一种迂回的方式来实现我的目标。

此应用程序托管在 Heroku 上 - 我需要在 Ruby on Rails 中完成此操作吗?

【问题讨论】:

  • 让“open”派生自start_at < now < min(closed_at, end_at)。那么就没有必要让它打开或关闭,除了时间流逝。
  • 我正在使用带有 websockets 的 Pusher,所以必须让客户知道,这样我才能运行一些客户端 JS。我错过了什么吗?
  • 我仍然会将其与更新模型(例如 update_column)分开,但客户端会轮询或推送更新。
  • "正在推送更新。"这就是问题的相关部分 ;) - 我怎样才能在正确的时间触发“推送”?
  • 客户端是浏览器/JavaScript.. 还是?

标签: ruby-on-rails ruby heroku scheduled-tasks


【解决方案1】:

您可以使用clockwork gem,写成cron 替换:

https://devcenter.heroku.com/articles/scheduled-jobs-custom-clock-processes

https://devcenter.heroku.com/articles/clock-processes-ruby

https://github.com/tomykaira/clockwork

编辑:我也喜欢 user2864740 的建议;如果这是一个答案,我也会 +1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多