【问题标题】:How send request every 2 seconds with Sidekiq?如何使用 Sidekiq 每 2 秒发送一次请求?
【发布时间】:2023-04-07 04:11:01
【问题描述】:

我有工作人员向服务器发送请求并检查是否存在文件。 现在worker在指定时间运行:

CheckFileWorker.perform_in(@target_file.check_start_date, @target_file.url)

  1. 我希望每 2 秒运行一次 worker。我该怎么做?
  2. 可能需要第二个工人来启动第一个工人?

【问题讨论】:

    标签: ruby-on-rails redis sidekiq


    【解决方案1】:

    我正在使用 Sidetiq 来安排重复的后台作业 (https://github.com/tobiassvn/sidetiq)。

    基本上你应该做类似的事情:

    class LicenseCheckerWorker
      include Sidekiq::Worker
      include Sidetiq::Schedulable
    
      recurrence { hourly }
    
      def perform
        #your logic here
      end
    end
    

    当然,您应该更改重复计划以反映您的偏好。

    编辑:另一种方法是在 #perform 逻辑结束时安排另一次运行,延迟 2 秒。

    【讨论】:

    • 类似重复 { secondly(2) } 应该可以工作
    • 不错的 gem,但现在无法访问 activerecord(使用 sidetiq):stackoverflow.com/questions/25454317/…
    • 很高兴知道:) 很高兴为您提供帮助
    猜你喜欢
    • 2012-01-27
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多