Sidekiq-Cron 开源项目教程
sidekiq-cronScheduler / Cron for Sidekiq jobs项目地址:https://gitcode.com/gh_mirrors/si/sidekiq-cron
1. 项目的目录结构及介绍
Sidekiq-Cron 是一个用于在 Sidekiq 中调度定时任务的 Ruby gem。以下是其基本的目录结构:
sidekiq-cron/
├── bin/
│ └── sidekiq-cron
├── lib/
│ ├── sidekiq-cron/
│ │ ├── job.rb
│ │ ├── manager.rb
│ │ ├── parser.rb
│ │ ├── poller.rb
│ │ ├── scheduler.rb
│ │ ├── version.rb
│ │ └── web.rb
│ └── sidekiq-cron.rb
├── sidekiq-cron.gemspec
├── Gemfile
├── Gemfile.lock
├── LICENSE.txt
├── README.md
└── Rakefile
目录结构介绍
bin/
: 包含可执行文件。lib/
: 包含主要的代码文件。sidekiq-cron/
: 包含 Sidekiq-Cron 的核心功能文件。job.rb
: 定义了定时任务的模型。manager.rb
: 管理定时任务的调度。parser.rb
: 解析定时任务的表达式。poller.rb
: 轮询定时任务。scheduler.rb
: 调度定时任务。version.rb
: 定义版本信息。web.rb
: 集成到 Sidekiq 的 Web 界面。
sidekiq-cron.gemspec
: gem 的规范文件。Gemfile
: 依赖管理文件。Gemfile.lock
: 依赖锁定文件。LICENSE.txt
: 许可证文件。README.md
: 项目说明文档。Rakefile
: Rake 任务文件。
2. 项目的启动文件介绍
Sidekiq-Cron 的启动文件主要是 bin/sidekiq-cron
。这个文件是一个 Ruby 脚本,用于启动 Sidekiq 并加载 Sidekiq-Cron 的功能。
#!/usr/bin/env ruby
require 'sidekiq'
require 'sidekiq/cron'
# 加载 Sidekiq 配置
Sidekiq.configure_server do |config|
config.on(:startup) do
Sidekiq::Cron::Job.load_from_hash YAML.load_file(File.expand_path('../../config/schedule.yml', __FILE__))
end
end
# 启动 Sidekiq
Sidekiq::CLI.instance.run
启动文件介绍
require 'sidekiq'
: 引入 Sidekiq 库。require 'sidekiq/cron'
: 引入 Sidekiq-Cron 库。Sidekiq.configure_server
: 配置 Sidekiq 服务器。config.on(:startup)
: 在启动时加载定时任务。Sidekiq::Cron::Job.load_from_hash
: 从 YAML 文件中加载定时任务配置。
Sidekiq::CLI.instance.run
: 启动 Sidekiq。
3. 项目的配置文件介绍
Sidekiq-Cron 的配置文件通常是一个 YAML 文件,例如 config/schedule.yml
。这个文件定义了需要定时执行的任务。
# config/schedule.yml
my_first_job:
cron: "*/5 * * * *" # 每5分钟执行一次
class: "MyFirstJob"
queue: "default"
args: [1, 2, 3]
my_second_job:
cron: "0 12 * * *" # 每天中午12点执行一次
class: "MySecondJob"
queue: "high"
args: [4, 5, 6]
配置文件介绍
my_first_job
: 定义第一个定时任务。cron
: 定时任务的 cron 表达式。class
: 定时任务对应的类。queue
: 任务所在的队列。args
: 传递给任务的参数。
my_second_job
:
sidekiq-cronScheduler / Cron for Sidekiq jobs项目地址:https://gitcode.com/gh_mirrors/si/sidekiq-cron