Corre tus tareas recurrentes con Sidekiq
Tenemos muchas tareas que ejecutamos de forma asíncrona con Sidekiq, por ejemplo: El envío de notificaciones por correo, la reindexación de contratos, la generación masiva de contratos y el inicio de la firma electrónica de cada contrato masivo 등
Sidekiq se puede usar de forma gratuita y de forma paga. Cuando usamos la forma gratuita hay ciertas funcionalidades que no se incluyen y una de estas es ejecutar CRON JOBS. Con esta funcionalidad podríamos tomar una tarea de Sidekiq y ejecutarla recurrentemente cada cierto tiempo con Cron jobs
다행스럽게도 Sidekiq 및 Webdox 유틸리티에 대한 Gemas que funcionan como plugins una para ejecutar tareas recurrentes de forma gratuita, su nombre es Sidekiq Scheduler
A continuación un pequeño tutorial de cómo utilizar Sidekiq Scheduler
설치 및 구성
Agregamos la gema en nuestro Gemfile
# Gemfile
gem 'sidekiq-scheduler'
y Ejecutamos:
bundle install
Creamos un Worker de Sidekiq el cual se ejecutará cada cierto tiempo.
hello_world_worker.rb
require 'sidekiq-scheduler'
class HelloWorldWorker
include Sidekiq::Worker
def perform
puts 'Hello world'
end
end
작업자가 Sidekiq의 구성을 보관할 때 수정한 주기를 구성하고 스케줄러를 분리하지 않음:
# config/sidekiq.yml
:schedule:
hello_world:
cron: '0 * * * * *' # Runs once per minute
class: HelloWorldWorker
Y corremos Sidekiq:
bundle exec sidekiq -C config/sidekiq.yml
Sidekiq veremos는 "Hello world"메시지를 포함합니다.
2021-06-07T15:54:38.710Z 62465 TID-ownzi9r98 INFO: Running in ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin20]
2021-06-07T15:54:38.710Z 62465 TID-ownzi9r98 INFO: See LICENSE and the LGPL-3.0 for licensing details.
2021-06-07T15:54:38.710Z 62465 TID-ownzi9r98 INFO: Upgrade to Sidekiq Pro for more features and support: http://sidekiq.org
2021-06-07T15:54:38.723Z 62465 TID-ownzi9r98 INFO: Loading Schedule
2021-06-07T15:54:38.723Z 62465 TID-ownzi9r98 INFO: Schedule empty! Set Sidekiq.schedule
2021-06-07T15:54:38.724Z 62465 TID-ownzi9r98 INFO: Schedules Loaded
2021-06-07T15:54:38.734Z 62465 TID-ownzi9r98 INFO: Reloading Schedule
2021-06-07T15:54:38.734Z 62465 TID-ownzi9r98 INFO: Loading Schedule
2021-06-07T15:54:38.790Z 62465 TID-ownzi9r98 INFO: Scheduling hello_world {"cron"=>"0 * * * * *", "class"=>"HelloWorldWorker", "queue"=>"default"}
2021-06-07T15:54:38.791Z 62465 TID-ownzi9r98 INFO: Schedules Loaded
2021-06-07T15:54:38.791Z 62465 TID-ownzi9r98 INFO: Starting processing, hit Ctrl-C to stop
2021-06-07T15:59:37.940Z 62990 TID-ov0v1hmpo HelloWorldWorker JID-4a465f9e9646157552de7f5c INFO: start
Hello world
2021-06-07T15:59:37.940Z 62990 TID-ov0v1hmpo HelloWorldWorker JID-4a465f9e9646157552de7f5c INFO: done: 0.0 sec
2021-06-07T15:59:37.940Z 62990 TID-ov0v1hmpo HelloWorldWorker JID-64dc6b6cb06ebf580c3faae6 INFO: start
Hello world
2021-06-07T15:59:37.940Z 62990 TID-ov0v1hmpo HelloWorldWorker JID-64dc6b6cb06ebf580c3faae6 INFO: done: 0.0 sec
Además tenemos la opción de visualizar las tareas recurrentes en el panel de administracion de Sidekiq si realizamos la siguiente configuración:
# config.ru
require 'sidekiq/web'
require 'sidekiq-scheduler/web'
run Sidekiq::Web
Por último recomendamos utilizar la página CronTabGurú cuando necesitemos configurar la periodicidad de las tareas recurrentes con la sintaxis de Cron Jobs.
Tener en cuenta que la sintaxis de cron jobs que utiliza Sidekiq Scheduler tiene una sección extra en la parte de adelante la cual nos permite configurar los segundos.
Reference
이 문제에 관하여(Corre tus tareas recurrentes con Sidekiq), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/webdox/corre-tus-tareas-recurrentes-con-sidekiq-3nj1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)