I forgot to make the queue manager...
This commit is contained in:
parent
3adf018c23
commit
a841b4bce7
37
lib/queue_manager.rb
Normal file
37
lib/queue_manager.rb
Normal file
|
@ -0,0 +1,37 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'json'
|
||||
require 'securerandom'
|
||||
|
||||
# Main class for managing the upload queue in case of rate limiting
|
||||
class QueueManager
|
||||
QUEUE_FILE = 'queue.json'
|
||||
|
||||
def self.enqueue(file_path)
|
||||
id = SecureRandom.uuid
|
||||
entry = { id:, file_path:, timestamp: Time.now.to_i }
|
||||
|
||||
queue = load_queue
|
||||
queue << entry
|
||||
save_queue(queue)
|
||||
|
||||
id
|
||||
end
|
||||
|
||||
def self.dequeue
|
||||
queue = load_queue
|
||||
entry = queue.shift
|
||||
save_queue(queue)
|
||||
entry
|
||||
end
|
||||
|
||||
def self.load_queue
|
||||
return [] unless File.exist?(QUEUE_FILE)
|
||||
|
||||
JSON.parse(File.read(QUEUE_FILE), symbolize_names: true)
|
||||
end
|
||||
|
||||
def self.save_queue(queue)
|
||||
File.write(QUEUE_FILE, JSON.pretty_generate(queue))
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue
Block a user