que-scheduler 使用教程

que-scheduler 使用教程

que-schedulerA lightweight cron scheduler for the async job worker Que项目地址:https://gitcode.com/gh_mirrors/qu/que-scheduler

项目介绍

que-scheduler 是一个扩展 Que 的插件,支持使用 cron 风格的配置文件进行任务调度。它通过作为一个 Que 任务本身运行,确定需要运行的任务并将其加入队列,然后再次将自己加入队列以进行下一次检查。

项目快速启动

安装

首先,将 gem 添加到你的 Gemfile 中:

gem 'que-scheduler'

然后运行 bundle install

配置

创建一个 YAML 文件来指定调度计划,默认位置是 config/que_schedule.yml。例如:

# config/que_schedule.yml
MyJob:
  cron: "0 1 * * *"
  args:
    key: "value"

迁移

添加一个迁移来启动任务调度器并准备审计表:

class CreateQueSchedulerSchema < ActiveRecord::Migration[6.0]
  def change
    Que::Scheduler::Migrations.migrate(version: 8)
  end
end

初始化

在初始化文件中配置 que-scheduler:

# config/initializers/que_scheduler.rb
Que::Scheduler.configure do |config|
  config.schedule_location = ENV.fetch("QUE_SCHEDULER_CONFIG_LOCATION", "config/que_schedule.yml")
end

应用案例和最佳实践

应用案例

假设你有一个需要每天凌晨1点执行的任务 MyJob,你可以这样配置:

# config/que_schedule.yml
MyJob:
  cron: "0 1 * * *"
  args:
    key: "value"

最佳实践

  1. 错误处理:que-scheduler 会在调度过程中捕获错误并使用标准的 Que 错误通知器报告错误,确保你的错误处理机制完善。
  2. 审计表清理:使用 QueSchedulerAuditClearDownJob 定期清理审计表中的旧记录。

典型生态项目

que-scheduler 通常与以下项目一起使用:

  1. Que:一个 Ruby 的基于线程的任务队列。
  2. ActiveJob:Ruby on Rails 的任务抽象层,可以与 Que 一起使用。
  3. Fugit:一个用于解析和处理 cron 表达式的库。

通过这些项目的结合使用,可以构建一个强大的后台任务处理系统。

que-schedulerA lightweight cron scheduler for the async job worker Que项目地址:https://gitcode.com/gh_mirrors/qu/que-scheduler

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

井章博Church

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值