gpt4 book ai didi

ruby-on-rails - 我需要清除我的 Resque 'processed' 队列吗?

转载 作者:IT王子 更新时间:2023-10-29 06:06:55 24 4
gpt4 key购买 nike

我正在使用 Resque(和 redis)来管理为我的 Rails 3 应用程序发送通知电子邮件。

我正在使用 Whenever crontab gem 每 30 分钟对一个作业进行排队,以检查是否需要发送通知。

我在 resque-web 界面中注意到每次成功完成时都有一个“已处理”作业。即使我重新启动 redis 和我的服务器,这个“完成”队列似乎也永远不会清除。这本身并没有打扰我,但我想确保我不应该以某种方式清除它或其他东西。所有这些已完成的工作是否只是坐在 Redis 中占用内存?当达到一定长度时,Redis 会自动从最早的开始清除它们吗?

谢谢

最佳答案

Redis 中已处理的键包含有关 Resque 总共处理了多少个作业以及由不同的 worker 处理的信息。

一旦工作人员处理完工作, done_working 调用 worker ,调用 processed! :

def processed!
Stat << "processed"
Stat << "processed:#{self}"
end

Stat 是 Resque 的模块,用于跟踪 Resque 实例的统计信息。它只保留整数,不存储所有已完成作业的历史记录,只存储整数计数,例如:

  • 总共失败了多少个作业
  • 一个特定的 worker 有多少工作失败了
  • 总共处理了多少作业
  • 一个特定的 worker 处理了多少个工作

查看模块源代码时可以看到这一点,<<简单地增加一个整数:

def <<(stat)
incr stat
end

你不应该担心冲洗它。与您拥有的 worker 数量成正比的数据非常少。 Resque 确实保留了失败的作业,但这是一件好事,可能不是你应该刷新的东西。

关于ruby-on-rails - 我需要清除我的 Resque 'processed' 队列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18680864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com