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