草庐IT

Resilience4j重试

全部标签

ruby - 是否有 Log4J for Ruby 的等价物,Log4Ruby?

找了一圈也没找到。是否有Ruby的Log4X等价物?如果不是,那么处理所有调试语句的最佳方法是什么。我是Ruby的新手。谢谢! 最佳答案 Ruby带有一个内置的日志库,但是有log4r.内置库的一个简短示例:#!/usr/bin/envrubyrequire'logger'log=Logger.new('mylog.txt')log.debug"Hellolog" 关于ruby-是否有Log4JforRuby的等价物,Log4Ruby?,我们在StackOverflow上找到一个类似的问

ruby - Ruby 中重做和重试语句的目的是什么?

redo我能想到的唯一用例是写入套接字或从数据库读取等操作,但如果这些操作失败一次,后续尝试很可能也会失败,因此它对我来说似乎仍然有点毫无意义,至于retry我真的想不出它在任何情况下都有用。这对我来说似乎毫无意义,因为我不知道或不使用Ruby,但我渴望有一天创造一种很棒的语言,所以我想至少知道一些最流行的语言设计背后的原因在那里。 最佳答案 想法是在调用redo或retry之前更改一些内容,希望您所做的任何事情第二次都能正常工作。我没有redo的示例,但我们已经在我正在处理的应用程序中找到了retry的用途。基本上,如果您有一些代

ruby:如何知道脚本是否在第 3 次重试?

begin#someroutinerescueretry#onthirdretry,output"nodice!"end我想让它在“第三次”重试时打印一条消息。 最佳答案 可能不是最好的解决方案,但一个简单的方法就是制作一个tries变量。tries=0begin#someroutinerescuetries+=1retryiftries 关于ruby:如何知道脚本是否在第3次重试?,我们在StackOverflow上找到一个类似的问题: https://st

ruby - 作业中的 Sidekiq 重试计数

有没有办法获取当前作业的重试次数?我希望作业在x次重试后停止,而不是崩溃。我想在perform方法中询问重试次数,这样我就可以在重试次数等于x时简单地返回。defperform(args)returnifretry_count>5...end使用Sidekiq2.12。编辑我(不是OP)有同样的问题,但出于不同的原因。如果正在重试该作业,我想进行额外的健全性检查以确保需要该作业,并在不再期望它成功时停止重试,因为它在排队后发生了外部变化。那么,有没有办法获取当前作业的重试次数呢?当前的答案仅建议您可以绕过需要它或可以从工作之外获得它的方法。 最佳答案

ruby-on-rails - neo4j 的哪个 Ruby REST API 客户端?

我想知道Ruby(不是JRuby,所以native绑定(bind)不是一个选项)可以使用哪些RESTAPI客户端?理想情况下,我希望API类似于neo4jgem或ActiveRecord(验证、迁移、观察者等)。当前可用的(REST)工具甚至无法与我们所拥有的相提并论,例如,在ActiveRecrod中:neograhy-只是普通RESTAPI。与模型等无关neology-只是对新地理学的包装,并不是功能齐全的ActiveModel。architect4r-符合ActiveModel,但仅提供一种查询数据的方式(Cypher语言),也不支持索引。我更喜欢architect4r的代码(主

ruby-on-rails - Sidekiq:失败作业的重试更改率?

我有特定类型的作业,我希望重试的频率高于默认Sidekiq间隔设置的频率。这目前可能吗?理想情况下,作业将每5秒重试一次,最多一分钟。不完全确定这是目前插入Sidekiq作业的微不足道的事情。 最佳答案 根据:https://github.com/mperham/sidekiq/wiki/Error-Handling你可以这样做:classWorkerincludeSidekiq::Workersidekiq_retry_indo|count|5endend 关于ruby-on-rail

ruby - 在此 Ruby 示例中如何限制重试和救援?

在Ruby的拙著中,提供了一个使用Rescue和retry的例子,使用以下代码向服务器发送HTTP头:defmake_requestif(@http11)self.send('HTTP/1.1')elseself.send('HTTP/1.0')endrescueProtocolError@http11=falseretryend要限制无限循环以防它无法解决,我必须插入什么代码来将重试限制为5次?会不会是这样的:5.times{retry} 最佳答案 您可以只在循环内编写一个5.times加上一个break,或者抽象该模式以将逻辑与

ruby-on-rails - RSpec 重试抛出异常然后返回值

我有一个重试blockdefmy_methodapp_instances=[]attempts=0beginapp_instances=fetch_and_rescan_app_instances(page_n,policy_id,policy_cpath)rescueExceptionattempts+=1retryunlessattempts>2raiseExceptionendpage_n+=1end其中fetch_and_rescan_app_instances访问网络,因此可以抛出异常。我想编写一个rspec测试,它第一次抛出异常,第二次调用时不抛出异常,所以我可以测试它是否

Neo4j 实战(一)-- Mac neo4j 安装与配置

 前言        Neo4j是一个高性能的,Nosql图形数据库。Nosql=nosql,即与传统的将数据结构化并存储在表中的数据库不一样。Neo4j将数据存储在网络上,我们也可以把Neo4j视为一个图引擎。我们打交道的是一个面对对象的、灵活的网络结构而不是严格的、静态的表。传统关系型数据库,当数据量很大时,查询性能会明显受影响,尤其是一度以上的查询。但是图形数据库却在这方面表现得很好。neo4j支持多种主流编程语言,包括.Net、Java、JavaScript、Python。本文主要是涉及到jdk和neo4j安装和适配。        注意事项:neo4j安装版本与JDK版本需要对应,不

ruby-on-rails - 如何在 resque-retry 和 Rails 4 中测试重试和失败?

我正在尝试编写一个规范来测试resque-retry的重试功能,但我似乎无法让测试正确命中binding.pry。有没有一种方法可以使用rspec3测试此功能,以便我可以验证它们是否按预期运行?这是一个请求规范,我正在尝试通过固定装置模拟实时请求,但无论我尝试什么,我似乎都无法让作业重试。gem'resque',require:'resque/server'gem'resque-web',require:'resque_web'gem'resque-scheduler'gem'resque-retry'gem'resque-lock-timeout'我正在使用resque_rspec,