Day07 - Gem-sidekiq-limit_fetch 限制 sidekiq queue 执行数量

前言

上篇介绍如何监控 Sidekiq,这篇介绍如何限制每个 queue 的上限,若是 Sidekiq ENTERPRISE 可以左转离开了,本身就有提供,免另外透过第三方 Gem 处理

说明

比方说有个 worker 负责处理影像转档 (可参考去年铁人赛文章),转档时会吃比较多资源,担心影响 server 其它服务,除了限制 CPU 使用量外,也要限制同时执行的数量,故可透过 sidekiq-limit_fetch Gem 来完成

示意图

实作

官方文件中得知,在需要使用的 worker 中加入 require 'sidekiq-limit_fetch',并在 sidekiq.yml 档案中增加 limits 即可,范例可参考此 commit

# 欲使用的 worker
require 'sidekiq-limit_fetch'

---

# config/sidekiq.yml
# 若没帮 worker queue 命名,会使用预设 default
  :limits:
    queue_name1: 5
    queue_name2: 10

小结

起初是为了影像转档时,想到要限制 queue(伫列) 的使用上限而使用。

後续在打 API 至第三方时,遇到会连续触发 N 个 worker (超过设定最多同时 10 个 concurrency),同时对方又回应比较慢时 (ex: 每个都数十秒甚至更长时间才回应),进而影响到其它服务,确认该 worker 不用即时处理时,便透过这个 Gem 来解决问题

参考资料

  1. sidekiq-limit_fetch GitHub

铁人赛文章连结:https://ithelp.ithome.com.tw/articles/10264576
medium 文章连结:https://link.medium.com/WH74csl2Mjb
本文同步发布於 小菜的 Blog https://riverye.com/

备注:之後文章修改更新,以个人部落格为主


<<:  Day05 - [丰收款] 继续把加密这件事看下去

>>:  Kotlin Android 第15天,从 0 到 ML - Android Jetpack

Day11# Pointer

终於跨入第 11 天,今天要来了解在 Go 里面我很不理解的一个型别 -- Pointer。 话不多...

Rebol 语言和你 SAY HELLO!!

第十五天 各位点进来的朋友,你们好阿 小的不才只能做这个系列的文章,但还是希望分享给点进来的朋友,知...

【Aspose系列】Aspose.Cells (2) - Worksheet

上一篇中我们成功取得 Workbook、WorksheetCollection 後,接着我们可以透过...

DAY02 - [CSS + RWD] 图文卡片

今日文章目录 事前准备 图文卡片 CSS概述 实例练习(待补充...) 图文卡片 我们时常在网页上...

Day 18: 人工神经网路初探 前馈神经网路

Feedforward 前馈神经网路 前馈神经网路是一种neuron之间的连接并不形成循环的人工智...