From 5624b097f515017696451336b8ad2a20e0e6c617 Mon Sep 17 00:00:00 2001 From: r74tech Date: Tue, 8 Oct 2024 22:00:06 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=8D=BB=20fix=20retry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wikidotrb/lib/wikidotrb/module/page.rb | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/wikidotrb/lib/wikidotrb/module/page.rb b/wikidotrb/lib/wikidotrb/module/page.rb index c9e81a2..4c0295e 100644 --- a/wikidotrb/lib/wikidotrb/module/page.rb +++ b/wikidotrb/lib/wikidotrb/module/page.rb @@ -569,13 +569,27 @@ def self.create_or_edit(site:, fullname:, page_id: nil, title: "", source: "", c ) end - res = PageCollection.search_pages(site, SearchPagesQuery.new(fullname: fullname)) - puts "Search result: #{res.inspect}" - raise Wikidotrb::Common::Exceptions::NotFoundException, "Page creation failed: #{fullname}" if res.empty? + retries = site.config.attempt_limit || 3 + retry_interval = site.config.retry_interval || 5 + + begin + res = PageCollection.search_pages(site, SearchPagesQuery.new(fullname: fullname)) + puts "Search result: #{res.inspect}" + raise Wikidotrb::Common::Exceptions::NotFoundException, "Page creation failed: #{fullname}" if res.empty? + rescue Wikidotrb::Common::Exceptions::NotFoundException => e + retries -= 1 + if retries > 0 + sleep retry_interval + retry + else + raise e + end + end res[0] end + def edit(title: nil, source: nil, comment: nil, force_edit: false) title ||= @title source ||= @source.wiki_text