que-scheduler 项目使用教程
项目的目录结构及介绍
que-scheduler 项目的目录结构如下:
que-scheduler/
├── bin/
├── config/
│ └── que_schedule.yml
├── lib/
│ └── que/
│ └── scheduler/
├── spec/
├── Gemfile
├── Gemfile.lock
├── LICENSE
├── README.md
└── que-scheduler.gemspec
bin/
: 包含项目的可执行文件。config/
: 包含项目的配置文件,如que_schedule.yml
。lib/
: 包含项目的源代码,其中que/scheduler/
目录下是核心逻辑。spec/
: 包含项目的测试文件。Gemfile
和Gemfile.lock
: 定义项目的依赖关系。LICENSE
: 项目的许可证文件。README.md
: 项目的说明文档。que-scheduler.gemspec
: 项目的 gem 规范文件。
项目的启动文件介绍
que-scheduler 项目的启动文件主要是通过 Gemfile
引入,并在 Rails 项目中通过初始化脚本进行配置。以下是一个典型的启动流程:
- 在
Gemfile
中添加gem 'que-scheduler'
。 - 运行
bundle install
安装依赖。 - 创建
config/que_schedule.yml
配置文件。 - 运行数据库迁移,创建必要的表:
class CreateQueSchedulerSchema < ActiveRecord::Migration[6.0]
def change
Que::Scheduler::Migrations.migrate(version: 8)
end
end
- 在 Rails 初始化脚本中配置
que-scheduler
:
Que::Scheduler.configure do |config|
config.schedule_location = ENV.fetch("QUE_SCHEDULER_CONFIG_LOCATION", "config/que_schedule.yml")
end
项目的配置文件介绍
que-scheduler 的配置文件位于 config/que_schedule.yml
,其格式类似于 resque-scheduler
,但有一些额外的特性。以下是一个示例配置:
SpecifiedByHashTestJob:
cron: "02 11 * * *"
args:
key: "value"
SpecifiedByHashTestJob
: 要调度的任务类。cron
: 使用 crontab 语法定义调度频率。args
: 传递给任务的参数。
此外,还可以通过 Ruby 代码动态生成配置:
Que::Scheduler.configure do |config|
config.schedule = [
SpecifiedByHashTestJob: {
cron: "02 11 * * *",
args: { key: "value" }
}
]
end
通过以上配置,que-scheduler 将按照定义的频率自动调度任务。