Hasty Briefsbeta

双语

How to Safely Change the Argument Signature of a Sidekiq Job

a day ago
  • 将Sidekiq升级到6.4版本时,触发了关于不安全任务参数的警告(包含符号键和Time对象的非JSON安全哈希)。
  • 在初始化程序中使用`Sidekiq.strict_args!`可将警告转换为错误,以强制执行最佳实践。
  • 最佳实践是仅将标量值(字符串、数字、布尔值、nil)作为位置参数传递,而不传递哈希等复杂对象。
  • 要安全地更改任务的参数签名,请创建一个具有新签名的重复任务类(例如`RequestLogWorker2`)。
  • 部署新的任务类,并将所有调用者迁移到使用它;旧的任务积压最终会清除。
  • 一旦旧的任务积压为空,将新类重命名为原始名称(例如`RequestLogWorker`),并添加别名(`RequestLogWorker2 = RequestLogWorker`)来处理任何剩余的排队任务。
  • 别名积压清除后,移除别名——迁移完成,任务签名已安全更改。