Sha256: eb458238345397f94e608d1980b1be9f9fe3ad123f13ba0d40254838b9ad8f9a

Contents?: true

Size: 1.87 KB

Versions: 37

Compression:

Stored size: 1.87 KB

Contents

# Cloudtasker Cron Jobs

**Note**: this extension requires redis

The Cloudtasker cron job extension allows you to register workers to run at fixed intervals, using a cron expression. You can validate your cron expressions using [crontab.guru](https://crontab.guru).

## Configuration

You can schedule cron jobs by adding the following to your cloudtasker initializer:
```ruby
# The cron job extension is optional and must be explicitly required
require 'cloudtasker/cron'

Cloudtasker.configure do |config|
  # Specify your redis url.
  # Defaults to `redis://localhost:6379/0` if unspecified
  config.redis = { url: 'redis://some-host:6379/0' }
end

# Specify all your cron jobs below. This will synchronize your list of cron jobs (cron jobs previously created and not listed below will be removed).
unless Rails.env.test?
  Cloudtasker::Cron::Schedule.load_from_hash!(
    # Run job every minute
    some_schedule_name: {
      worker: 'SomeCronWorker',
      cron: '* * * * *'
    },
    # Run job every hour on the fifteenth minute 
    other_cron_schedule: {
      worker: 'OtherCronWorker',
      cron: '15 * * * *',
      queue: 'critical'
      args: ['foo', 'bar']
    }
  )
end
```

## Using a configuration file

You can maintain the list of cron jobs in a YAML file inside your config folder if you prefer:
```yml
# config/cloudtasker_cron.yml

# Run job every minute
some_schedule_name:
  worker: 'SomeCronWorker'
  cron: => '* * * * *'
  
# Run job every hour on the fifteenth minute 
other_cron_schedule:
  worker: 'OtherCronWorker'
  cron: => '15 * * * *'
```

Then register the jobs inside your Cloudtasker initializer this way:
```ruby
# config/initializers/cloudtasker.rb

# ... Cloudtasker configuration ...

schedule_file = 'config/cloudtasker_cron.yml'
if File.exist?(schedule_file) && !Rails.env.test?
  Cloudtasker::Cron::Schedule.load_from_hash!(YAML.load_file(schedule_file))
end
```

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
cloudtasker-0.12.1 docs/CRON_JOBS.md
cloudtasker-0.11.1 docs/CRON_JOBS.md
cloudtasker-0.10.2 docs/CRON_JOBS.md
cloudtasker-0.9.5 docs/CRON_JOBS.md
cloudtasker-0.12.0 docs/CRON_JOBS.md
cloudtasker-0.12.rc11 docs/CRON_JOBS.md
cloudtasker-0.12.rc10 docs/CRON_JOBS.md
cloudtasker-0.12.rc9 docs/CRON_JOBS.md
cloudtasker-0.12.rc8 docs/CRON_JOBS.md
cloudtasker-0.12.rc7 docs/CRON_JOBS.md
cloudtasker-0.12.rc6 docs/CRON_JOBS.md
cloudtasker-0.12.rc5 docs/CRON_JOBS.md
cloudtasker-0.12.rc4 docs/CRON_JOBS.md
cloudtasker-0.12.rc3 docs/CRON_JOBS.md
cloudtasker-0.12.rc2 docs/CRON_JOBS.md
cloudtasker-0.12.rc1 docs/CRON_JOBS.md
cloudtasker-0.11.0 docs/CRON_JOBS.md
cloudtasker-0.11.rc3 docs/CRON_JOBS.md
cloudtasker-0.11.rc2 docs/CRON_JOBS.md
cloudtasker-0.11.rc1 docs/CRON_JOBS.md