Sidekiq drain 还执行通过 perform_in 排队的新作业
Sidekiq drain also performs new jobs enqueued via perform_in
我想测试一个工人,它自己排队(基于一些重试逻辑)。
class SomeWorker
def perform
SomeWorker.perform_in(10.minutes)
end
end
SomeWorker.perform_async
SomeWorker.drain # => This continously enqueus and runs the job
...assert something...
- 没等 10 分钟就运行宁
- 我在想
drain
的调用应该 运行 只是第一份工作,我需要再次调用 drain 来 运行 更多。
我希望我的测试看起来像
SomeWorker.perform_async
SomeWorker.drain
...assert something is retrying...
SomeWorker.drain
...assert something is not retrying...
我该如何测试?
SomeWorker.drain
将在队列中保留 运行ning 个作业,直到队列为空。如果您的作业将另一个作业排入队列,它也会 运行。
如果您只想 运行 一个作业,请使用 SomeWorker.perform_one
。
我想测试一个工人,它自己排队(基于一些重试逻辑)。
class SomeWorker
def perform
SomeWorker.perform_in(10.minutes)
end
end
SomeWorker.perform_async
SomeWorker.drain # => This continously enqueus and runs the job
...assert something...
- 没等 10 分钟就运行宁
- 我在想
drain
的调用应该 运行 只是第一份工作,我需要再次调用 drain 来 运行 更多。
我希望我的测试看起来像
SomeWorker.perform_async
SomeWorker.drain
...assert something is retrying...
SomeWorker.drain
...assert something is not retrying...
我该如何测试?
SomeWorker.drain
将在队列中保留 运行ning 个作业,直到队列为空。如果您的作业将另一个作业排入队列,它也会 运行。
如果您只想 运行 一个作业,请使用 SomeWorker.perform_one
。