我为 Sidekiq 构建了一个简单的测试作业,并将其添加到我schedule.yml
的 Sidekiq Cron 文件中。
这是我的测试工作:
module Slack
class TestJob < ApplicationJob
queue_as :default
def perform(*args)
begin
SLACK_NOTIFIER.post(attachments: {"pretext": "test", "text": "hello"})
rescue Exception => error
puts error
end
end
end
end
这SLACK_NOTIFIER
是我在启动时初始化的 Slack 的简单 API 客户端。
在我的schedule.yml
:
test_job:
cron: "* * * * *"
class: "Slack::TestJob"
queue: default
description: "Test"
所以我想让它每分钟都运行一次,它的工作方式完全符合我的预期。
但是,我现在已经删除了作业文件并从中删除了作业schedule.yml
,它仍然每分钟都尝试运行作业。我进入了我的 sidekiq 仪表板,我看到了对该工作的大量重试。不管我把他们都杀了多少次,他们还是会继续来的。
我试过几次关闭redis服务器和sidekiq。我试过关闭我的电脑(当然是在杀死服务器之后)。它仍然会继续安排这些作业,并且会中断我的其他作业,因为它会引发以下异常:
NameError: uninitialized constant Slack::TestJob
我已经对“TestJob”进行了项目范围的搜索,但没有得到任何结果。
我只用这个工作打开了redis服务器大约10分钟......
redis数据库中是否有一些挥之不去的东西?我查看了redis-cli
文档,但我认为它对我没有任何帮助。