first pass at stats.rake

This commit is contained in:
Dylan Knutson
2025-07-10 19:24:41 +00:00
parent 542e38b35a
commit 6c086ac9cc
37 changed files with 17958 additions and 20 deletions

View File

@@ -1,3 +1,7 @@
# typed: false
# frozen_string_literal: true
T.bind(self, T.all(Rake::DSL, Object))
require "find"
namespace :blob_file do

View File

@@ -1,3 +1,7 @@
# typed: false
# frozen_string_literal: true
T.bind(self, T.all(Rake::DSL, Object))
namespace :e621 do
desc "run a single e621 posts index job"
task posts_index_job: :environment do

View File

@@ -1,3 +1,7 @@
# typed: false
# frozen_string_literal: true
T.bind(self, T.all(Rake::DSL, Object))
namespace :fa do
desc "enqueue waiting posts"
task enqueue_waiting_posts: %i[set_logger_stdout environment] do |t, args|

View File

@@ -1,3 +1,7 @@
# typed: false
# frozen_string_literal: true
T.bind(self, T.all(Rake::DSL, Object))
namespace :fingerprint do
desc "Create missing fingerprints"
task create_missing: :environment do

View File

@@ -1,3 +1,7 @@
# typed: false
# frozen_string_literal: true
T.bind(self, T.all(Rake::DSL, Object))
namespace :ib do
desc "run a single e621 posts index job"
task latest_posts_job: :environment do
@@ -28,15 +32,4 @@ namespace :ib do
puts "auth credentials set to #{username} / #{password}"
end
desc "Perform FileJob for missing files"
task perform_file_jobs: :environment do
Domain::Inkbunny::File
.where(state: :ok)
.where(blob_entry_sha256: nil)
.where("url_str <> ?", "")
.find_each do |file|
Domain::Inkbunny::Job::StaticFileJob.new.perform(file: file)
end
end
end

View File

@@ -1,9 +1,13 @@
# typed: false
# frozen_string_literal: true
T.bind(self, T.all(Rake::DSL, Object))
namespace :metrics do
desc "run reporters periodically"
task report_all: %i[environment set_logger_stdout] do
schedule = {
Rake::Task["metrics:jobs"] => 60.seconds,
Rake::Task["metrics:estimate_db_rows"] => 60.seconds
Rake::Task["metrics:estimate_db_rows"] => 60.seconds,
}
last_ran = {}

View File

@@ -1,21 +1,25 @@
# typed: false
# frozen_string_literal: true
T.bind(self, T.all(Rake::DSL, Object))
namespace :twitter do
desc "scan timeline of a user"
task :timeline => [:set_logger_stdout, :environment] do |t, args|
task timeline: %i[set_logger_stdout environment] do |t, args|
force_scan = ENV["force_scan"] || false
name = ENV["name"] || raise("must provide name")
Domain::Twitter::Job::UserTimelineTweetsJob.
set(priority: -10).
perform_later({ name: name, force_scan: force_scan })
Domain::Twitter::Job::UserTimelineTweetsJob.set(
priority: -10,
).perform_later({ name: name, force_scan: force_scan })
puts "timeline for #{name}"
end
task :timeline_file => [:set_logger_stdout, :environment] do
task timeline_file: %i[set_logger_stdout environment] do
file = ENV["file"]
names = File.read(file).split("\n").map(&:strip).map(&:chomp)
names.each do |name|
Domain::Twitter::Job::UserTimelineTweetsJob.
set(priority: -10).
perform_later({ name: name, force_scan: false })
Domain::Twitter::Job::UserTimelineTweetsJob.set(
priority: -10,
).perform_later({ name: name, force_scan: false })
puts "timeline for #{name}"
end
end