From f6cf64e5b892cba48390e1377044195d2b67cf84 Mon Sep 17 00:00:00 2001 From: songtianlun Date: Tue, 8 Apr 2025 14:21:54 +0800 Subject: [PATCH] feat: add scheduled task for IndexNow submissions - Make the `perform` method accept an optional parameter for recent updates - Log the number of URLs submitted to IndexNow - Introduce a new scheduled job for submitting URLs to IndexNow daily This commit enhances the functionality of the `SubmitToIndexnowWorker` by allowing it to be triggered via a scheduled job. It also adds logging for better monitoring of submissions, improving traceability and performance in sitemap management. --- app/workers/submit_to_indexnow_worker.rb | 3 ++- config/sidekiq_scheduler.yml | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/workers/submit_to_indexnow_worker.rb b/app/workers/submit_to_indexnow_worker.rb index d93dd67..3da6d3c 100644 --- a/app/workers/submit_to_indexnow_worker.rb +++ b/app/workers/submit_to_indexnow_worker.rb @@ -14,7 +14,7 @@ class SubmitToIndexnowWorker "https://www.bing.com/indexnow" ] - def perform(recent) + def perform(recent = true) lock_key = "submit_to_indexnow_lock" lock_ttl = 300 # 锁的生存时间,单位为秒 @@ -29,6 +29,7 @@ class SubmitToIndexnowWorker # 收集所有需要提交的 URLs urls = collect_urls(recently_updated) + Rails.logger.info "Ready to submit #{urls.size} URLs to IndexNow" # 分批提交 URLs (每批最多 10000 个 URLs,符合 IndexNow 限制) urls.each_slice(100) do |url_batch| diff --git a/config/sidekiq_scheduler.yml b/config/sidekiq_scheduler.yml index 8914b3f..b7531ee 100644 --- a/config/sidekiq_scheduler.yml +++ b/config/sidekiq_scheduler.yml @@ -11,6 +11,13 @@ refresh_sitemap: description: "Refresh sitemap daily" enabled: true +submit_indexnow: + cron: '0 5 * * *' + class: SubmitToIndexnowWorker + queue: default + description: "Refresh sitemap daily" + enabled: true + clean_ahoy_data: cron: '0 0 * * 0' class: CleanAhoyDataWorker