|
20 | 20 | solid_queue_blocked_executions |
21 | 21 | solid_queue_ready_executions |
22 | 22 | solid_queue_recurring_executions |
| 23 | + solid_queue_recurring_tasks |
23 | 24 | solid_queue_jobs |
24 | 25 | solid_queue_processes |
25 | 26 | solid_queue_semaphores |
|
208 | 209 | end |
209 | 210 | end |
210 | 211 |
|
| 212 | +puts "Seeding recurring tasks..." |
| 213 | +recurring_tasks_data = [ |
| 214 | + { key: "nightly-cleanup", schedule: "0 2 * * *", command: "CleanupJob.perform_later", queue_name: "default", description: "Nightly database cleanup", static: true }, |
| 215 | + { key: "hourly-data-sync", schedule: "0 * * * *", command: "DataSyncJob.perform_later", queue_name: "default", description: "Sync data from external APIs every hour", static: true }, |
| 216 | + { key: "weekly-report", schedule: "0 8 * * 1", command: "ReportGeneratorJob.perform_later", queue_name: "low_priority", description: "Generate weekly summary report on Monday morning", static: true }, |
| 217 | + { key: "send-digest-email", schedule: "0 9 * * *", command: "UserMailerJob.perform_later", queue_name: "mailers", description: "Daily digest email to all users", static: true }, |
| 218 | + { key: "export-invoices", schedule: "30 1 1 * *", command: "InvoiceGeneratorJob.perform_later", queue_name: "critical", description: "Monthly invoice export on the 1st", static: true }, |
| 219 | + { key: "purge-old-images", schedule: "0 3 * * 0", command: "ImageProcessingJob.perform_later", queue_name: "low_priority", description: "Weekly purge of unattached image uploads", static: true }, |
| 220 | + { key: "dynamic-notification", schedule: "*/15 * * * *", command: "NotificationJob.perform_later", queue_name: "mailers", description: "Push notifications every 15 minutes", static: false } |
| 221 | +] |
| 222 | + |
| 223 | +recurring_tasks_data.each { |attrs| SolidQueue::RecurringTask.create!(attrs) } |
| 224 | + |
211 | 225 | puts "Done! Created:" |
212 | 226 | puts " #{SolidQueue::ReadyExecution.count} ready jobs" |
213 | 227 | puts " #{SolidQueue::ScheduledExecution.count} scheduled jobs" |
|
216 | 230 | puts " #{SolidQueue::FailedExecution.count} failed jobs" |
217 | 231 | puts " #{SolidQueue::Process.count} processes" |
218 | 232 | puts " #{SolidQueue::Job.where.not(finished_at: nil).count} finished jobs" |
| 233 | +puts " #{SolidQueue::RecurringTask.count} recurring tasks" |
0 commit comments