草庐IT

ruby-on-rails - 即使超时,Sidekiq worker 仍运行数千秒

我有一个不应超过30秒的sidekiqworker,但几天后我会发现整个worker队列停止执行,因为所有worker都被锁定了。这是我的worker:classMyWorkerincludeSidekiq::WorkerincludeSidekiq::Status::Workersidekiq_optionsqueue::my_queue,retry:5,timeout:4.minutessidekiq_retry_indo|count|5endsidekiq_retries_exhausteddo|msg|store({message:"Gaveup."})enddefperfor

ruby-on-rails - 即使超时,Sidekiq worker 仍运行数千秒

我有一个不应超过30秒的sidekiqworker,但几天后我会发现整个worker队列停止执行,因为所有worker都被锁定了。这是我的worker:classMyWorkerincludeSidekiq::WorkerincludeSidekiq::Status::Workersidekiq_optionsqueue::my_queue,retry:5,timeout:4.minutessidekiq_retry_indo|count|5endsidekiq_retries_exhausteddo|msg|store({message:"Gaveup."})enddefperfor

ruby-on-rails-3 - 从一个 worker 调用多个 sidekiq worker

我必须根据用户的请求运行多个作业。然而,其中只有一个是重要的。所以我有一个MainWorker,在它的perform方法中我调用了不同的其他worker,例如Worker1、Worker2。Worker1和Worker2可以延迟,我需要优先MainWorker。这就是我的perform方法现在的样子classMainWorkerdefperform(user_id)User.find(user_id).main_taskWorker1.perform_async(user_id)Worker2.perform_async(user_id)endend我以后可能会有更多的subworke

ruby-on-rails-3 - 从一个 worker 调用多个 sidekiq worker

我必须根据用户的请求运行多个作业。然而,其中只有一个是重要的。所以我有一个MainWorker,在它的perform方法中我调用了不同的其他worker,例如Worker1、Worker2。Worker1和Worker2可以延迟,我需要优先MainWorker。这就是我的perform方法现在的样子classMainWorkerdefperform(user_id)User.find(user_id).main_taskWorker1.perform_async(user_id)Worker2.perform_async(user_id)endend我以后可能会有更多的subworke

ruby-on-rails - sidekiq-superworker 的 superjob 完成时调用函数

我在我的Rails4.2应用程序中设置了两个Sidekiqworker,其中第一个执行多个作业,另一个在所有这些作业完成后发送电子邮件。这两个耦合在这个superworker中:Superworker.define(:PrioritySuperworker,:object_class,:object_id,:priority_ids)dobatchpriority_ids::priority_iddoPriorityMailsWorker:object_class,:object_id,:priority_idendSendConfirmationWorker:object_class

ruby-on-rails - sidekiq-superworker 的 superjob 完成时调用函数

我在我的Rails4.2应用程序中设置了两个Sidekiqworker,其中第一个执行多个作业,另一个在所有这些作业完成后发送电子邮件。这两个耦合在这个superworker中:Superworker.define(:PrioritySuperworker,:object_class,:object_id,:priority_ids)dobatchpriority_ids::priority_iddoPriorityMailsWorker:object_class,:object_id,:priority_idendSendConfirmationWorker:object_class

ruby-on-rails - 如果 Sidekiq 未处于运行状态,则自动启动它 - Rails

我正在为我的cron作业使用redis服务器和sidekiq但有时sidekiq在后端。我想从我的Controller的操作中重新启动sidekiq,或者在它终止时自动重新启动而不停止我的Rails应用程序服务器。请建议我如何解决这个问题? 最佳答案 您可以通过以下方式检查sidekiq和redis服务器是否正在运行:defredis_connected?!!Sidekiq.redis(&:info)rescuefalseenddefsidekiq_connected?ps=Sidekiq::ProcessSet.newps.siz

ruby-on-rails - 如果 Sidekiq 未处于运行状态,则自动启动它 - Rails

我正在为我的cron作业使用redis服务器和sidekiq但有时sidekiq在后端。我想从我的Controller的操作中重新启动sidekiq,或者在它终止时自动重新启动而不停止我的Rails应用程序服务器。请建议我如何解决这个问题? 最佳答案 您可以通过以下方式检查sidekiq和redis服务器是否正在运行:defredis_connected?!!Sidekiq.redis(&:info)rescuefalseenddefsidekiq_connected?ps=Sidekiq::ProcessSet.newps.siz

ruby - 如何最好地保持作业队列清理重试/重复作业(使用 sidekiq 和 redis-semaphore)

我有一个Rails应用程序,可以从多个IMAP帐户获取大量电子邮件。我使用sidekiq来处理这些工作。我使用sidetiq来安排作业。我使用redis-semaphore来确保同一用户的重复作业不会相互偶然发现。虽然有2个问题:1:当一个作业命中“ifs.lock”时,redis-semaphore将其暂停,直到之前的所有作业都完成。我需要取消作业而不是排队。2:如果在作业期间出现异常,导致崩溃,sidekiq会将作业放回队列中重试。我需要取消作业而不是排队。将“sidekiq_options:retry=>false”放入代码中似乎没有什么不同。我的代码:classFetchMai

ruby - 如何最好地保持作业队列清理重试/重复作业(使用 sidekiq 和 redis-semaphore)

我有一个Rails应用程序,可以从多个IMAP帐户获取大量电子邮件。我使用sidekiq来处理这些工作。我使用sidetiq来安排作业。我使用redis-semaphore来确保同一用户的重复作业不会相互偶然发现。虽然有2个问题:1:当一个作业命中“ifs.lock”时,redis-semaphore将其暂停,直到之前的所有作业都完成。我需要取消作业而不是排队。2:如果在作业期间出现异常,导致崩溃,sidekiq会将作业放回队列中重试。我需要取消作业而不是排队。将“sidekiq_options:retry=>false”放入代码中似乎没有什么不同。我的代码:classFetchMai