当某个时间等于Rails中的某个值时执行函数 6
Execute a function when a time is equal to a certain value in Rails 6
我正在建立一个在线电子商务商店,我正在尝试使用 rails 和动作电缆在特定日期时间将产品从缺货更新为有货,例如 12:00:00 2020-02-19
。
想法是一到时间就推一个Websocket,产品已经上架了
我尝试了一些解决方案,例如:
Thread.new do
while true do
if **SOMETIME** == Time.now
ActionCable.server.broadcast "product_channel",content: "product-in-stock"
end
end
end
此方法的主要问题是它会创建另一个线程并使 rails 无响应。此外,如果将此值设置为从现在起 1 周后,我不希望每个查询端点的用户都像这样创建一个全新的线程 运行。
你有两个选择使用 sidekiq 作业或使用任何时候作业 gem
https://github.com/mperham/sidekiq/wiki/Scheduled-Jobs
每当允许您设置特定的日期和时间时,请查看文档以获取更多信息
https://github.com/javan/whenever
我正在建立一个在线电子商务商店,我正在尝试使用 rails 和动作电缆在特定日期时间将产品从缺货更新为有货,例如 12:00:00 2020-02-19
。
想法是一到时间就推一个Websocket,产品已经上架了
我尝试了一些解决方案,例如:
Thread.new do
while true do
if **SOMETIME** == Time.now
ActionCable.server.broadcast "product_channel",content: "product-in-stock"
end
end
end
此方法的主要问题是它会创建另一个线程并使 rails 无响应。此外,如果将此值设置为从现在起 1 周后,我不希望每个查询端点的用户都像这样创建一个全新的线程 运行。
你有两个选择使用 sidekiq 作业或使用任何时候作业 gem https://github.com/mperham/sidekiq/wiki/Scheduled-Jobs 每当允许您设置特定的日期和时间时,请查看文档以获取更多信息 https://github.com/javan/whenever