当前位置: 首页 > 面试题库 >

Sidekiq-重新安排失败的工作

朱宇航
2023-03-14
问题内容

我有一个使用Sidekiq连接到我的另一个服务的后台作业,如下所示:

  def perform(id)
      user = ABCClient.instance.user(id)
      ...
  end

有时,此ABCClient关闭了,在这种情况下,我想重新安排“执行”作业。像这样:

  def perform(id)
      begin
          user = ABCClient.instance.user(id)
      rescue => e
          # Reschedule job
      end
      ...
  end

问题答案:

https://github.com/mperham/sidekiq/wiki/Scheduled-
Jobs

rescue => e self.class.perform_in(5.minutes, id) end



 类似资料:
  • 我已经编写了如下所示的重新调度代码。尽管时间表上写着“每120秒重复一次”,但在结束UpdateQuartzJobTrigger方法后,Execute()方法会立即被调用。

  • 问题内容: 在我的应用程序中,我有25个工作人员,这些工作人员被不同用户的操作随机使用。 每个用户只允许同时进行一项(活动/忙碌)工作。 不能在控制器上将其阻止,因为其思想不是阻止动作的创建。需要创建动作,但动作要排队,直到处理同一用户的所有previos请求,然后才为该同一用户(重新)分配一个工作程序。 同时,如果另一个用户请求创建作业,则在剩余的24个工人中至少有一个可用时,它应该立即启动。

  • 我只是按照 https://devcenter.heroku.com/articles/newrelic#java-configuration 从步骤 将New Relic代理添加为Maven依赖项 直到步骤 将New Relic代理添加为Scala SBT/Play 2依赖项 要为我的Web服务(Jetty JAX-RS REST)安装New Relic插件。 我定制了这件新文物。yml(与po

  • 寻找有关以下用例的建议或解决方案 应用程序接收按功能键(如员工id)标识的更改时间排序的消息。功能键可以有多条消息 每条消息都会触发一个工作流。如果员工有待定工作流,则希望将新消息排队,直到待定工作流完成 是否有任何方法可以在节奏中对消息重新排序,以将它们作为由消息中的功能键标识的组进行处理?

  • a)为什么除了“00”之外还有其他输出? b)如何修改代码以便始终打印“00”。 对于a)我的回答是:在没有任何volatile/同步构造的情况下,编译器可以重新排序一些指令。特别是“this.initialint=val;”和“this.flag=true;”可以切换,这样就可以发生这种情况:线程都启动了,t1充电在前面。给定重新排序的指令,它首先设置flag=true。在它到达“this.in