Редактировать: наша команда только что сказала мне, что докер даже не используется для производства. Таким образом, похоже, что проблема ограничена Docker, а не средой, в которой запускается Rails.
У меня есть проект, в котором я работаю над заданиями sidekiq, кажется, они нормально работают в нашей производственной среде, но на моей локальной машине для разработки я получаю кучу ошибок консоли для sidekiq, и я не знаю, почему.
Вот мои ошибки sidekiq:
sidekiq_1 | 2017-03-15T17:16:24.346Z 1 TID-gq075lic0 INFO: Booting Sidekiq 4.2.3 with redis options {:url=>"redis://redis:6379/"}
sidekiq_1 | 2017-03-15T17:16:25.240Z 1 TID-gq075lic0 INFO: Running in ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
sidekiq_1 | 2017-03-15T17:16:25.240Z 1 TID-gq075lic0 INFO: See LICENSE and the LGPL-3.0 for licensing details.
sidekiq_1 | 2017-03-15T17:16:25.241Z 1 TID-gq075lic0 INFO: Upgrade to Sidekiq Pro for more features and support: http://sidekiq.org
sidekiq_1 | 2017-03-15T17:16:25.260Z 1 TID-gq075lic0 INFO: Loading Schedule
sidekiq_1 | 2017-03-15T17:16:25.260Z 1 TID-gq075lic0 INFO: Schedule empty! Set Sidekiq.schedule
sidekiq_1 | 2017-03-15T17:16:25.264Z 1 TID-gq075lic0 INFO: Schedules Loaded
sidekiq_1 | 2017-03-15T17:16:25.266Z 1 TID-gq075lic0 WARN: {"context":"Exception during Sidekiq lifecycle event.","event":"startup"}
sidekiq_1 | 2017-03-15T17:16:25.266Z 1 TID-gq075lic0 WARN: TypeError: can't dup NilClass
sidekiq_1 | 2017-03-15T17:16:25.267Z 1 TID-gq075lic0 WARN: /usr/local/bundle/gems/sidekiq-scheduler-2.0.19/lib/sidekiq-scheduler/schedule.rb:126:in `dup'
sidekiq_1 | /usr/local/bundle/gems/sidekiq-scheduler-2.0.19/lib/sidekiq-scheduler/schedule.rb:126:in `block in prepare_schedule'
sidekiq_1 | /usr/local/bundle/gems/sidekiq-scheduler-2.0.19/lib/sidekiq-scheduler/schedule.rb:125:in `each'
sidekiq_1 | /usr/local/bundle/gems/sidekiq-scheduler-2.0.19/lib/sidekiq-scheduler/schedule.rb:125:in `prepare_schedule'
sidekiq_1 | /usr/local/bundle/gems/sidekiq-scheduler-2.0.19/lib/sidekiq-scheduler/schedule.rb:40:in `schedule='
sidekiq_1 | /gathrly/config/initializers/scheduler.rb:5:in `block (2 levels) in <top (required)>'
sidekiq_1 | /usr/local/bundle/gems/sidekiq-4.2.3/lib/sidekiq/util.rb:54:in `block in fire_event'
sidekiq_1 | /usr/local/bundle/gems/sidekiq-4.2.3/lib/sidekiq/util.rb:52:in `each'
sidekiq_1 | /usr/local/bundle/gems/sidekiq-4.2.3/lib/sidekiq/util.rb:52:in `fire_event'
sidekiq_1 | /usr/local/bundle/gems/sidekiq-4.2.3/lib/sidekiq/cli.rb:79:in `run'
sidekiq_1 | /usr/local/bundle/gems/sidekiq-4.2.3/bin/sidekiq:12:in `<top (required)>'
sidekiq_1 | /usr/local/bundle/bin/sidekiq:17:in `load'
sidekiq_1 | /usr/local/bundle/bin/sidekiq:17:in `<top (required)>'
sidekiq_1 | /usr/local/bundle/gems/bundler-1.14.6/lib/bundler/cli/exec.rb:74:in `load'
sidekiq_1 | /usr/local/bundle/gems/bundler-1.14.6/lib/bundler/cli/exec.rb:74:in `kernel_load'
sidekiq_1 | /usr/local/bundle/gems/bundler-1.14.6/lib/bundler/cli/exec.rb:27:in `run'
sidekiq_1 | /usr/local/bundle/gems/bundler-1.14.6/lib/bundler/cli.rb:335:in `exec'
sidekiq_1 | /usr/local/bundle/gems/bundler-1.14.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
sidekiq_1 | /usr/local/bundle/gems/bundler-1.14.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
sidekiq_1 | /usr/local/bundle/gems/bundler-1.14.6/lib/bundler/vendor/thor/lib/thor.rb:359:in `dispatch'
sidekiq_1 | /usr/local/bundle/gems/bundler-1.14.6/lib/bundler/cli.rb:20:in `dispatch'
sidekiq_1 | /usr/local/bundle/gems/bundler-1.14.6/lib/bundler/vendor/thor/lib/thor/base.rb:440:in `start'
sidekiq_1 | /usr/local/bundle/gems/bundler-1.14.6/lib/bundler/cli.rb:11:in `start'
sidekiq_1 | /usr/local/bundle/gems/bundler-1.14.6/exe/bundle:32:in `block in <top (required)>'
sidekiq_1 | /usr/local/bundle/gems/bundler-1.14.6/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
sidekiq_1 | /usr/local/bundle/gems/bundler-1.14.6/exe/bundle:24:in `<top (required)>'
sidekiq_1 | /usr/local/bundle/bin/bundle:22:in `load'
sidekiq_1 | /usr/local/bundle/bin/bundle:22:in `<main>'
sidekiq_1 | 2017-03-15T17:16:25.268Z 1 TID-gq075lic0 INFO: Starting processing, hit Ctrl-C to stop
web_1 | Puma starting in single mode...
web_1 | * Version 3.6.0 (ruby 2.3.1-p112), codename: Sleepy Sunday Serenity
web_1 | * Min threads: 5, max threads: 5
web_1 | * Environment: development
web_1 | * Listening on tcp://0.0.0.0:3000
В нем говорится:
sidekiq_1 | 2017-03-15T17:16:25.260Z 1 TID-gq075lic0 INFO: Loading Schedule
sidekiq_1 | 2017-03-15T17:16:25.260Z 1 TID-gq075lic0 INFO: Schedule empty! Set Sidekiq.schedule
sidekiq_1 | 2017-03-15T17:16:25.264Z 1 TID-gq075lic0 INFO: Schedules Loaded
Но затем я получаю ошибку NilClass.
Вот мой файл scheduler.rb:
require 'sidekiq/scheduler'
Sidekiq.configure_server do |config|
config.on(:startup) do
Sidekiq.schedule = YAML.load_file(File.expand_path('../../sidekiq_scheduler.yml', __FILE__))
Sidekiq::Scheduler.reload_schedule!
end
end
и мой файл sidekiq-scheduler.rb:
UpdateEventbriteJob:
cron: "*/15 * * * *"
UpdateMeetupJob:
cron: "*/15 * * * *"
PostEventEmailJob:
# cron: "0 9 * * *"
# cron: "*/1 * * * *"
UpdateStatusJob:
cron: "*/1 * * * *" # Every minute for testing. Plan on every 24 hours
Я тестирую UpdateStatusJob
локально. Другие рабочие места работают на производстве и, кажется, работают нормально. Но Ничто в этом планировщике никогда не срабатывает в режиме разработки. Я хотел бы протестировать работу, прежде чем запускать ее в производство. Что я делаю неправильно?
Я также должен отметить, что я запускаю вещи в докере. Что-то, что я не использую слишком часто, поэтому я не уверен, что это мешает.
Вот соответствующая информация в моем файле docker-compose:
version: '2'
services:
...
sidekiq:
build: .
command: bundle exec sidekiq -C config/sidekiq.yml
env_file: .env
links:
- db
- redis
...
dup
- person Antonio   schedule 15.03.2017bundle exec sidekiq -C config/sidekiq.yml -e development
иbundle exec sidekiq -C config/sidekiq.yml -e production -d
- person Omkar   schedule 16.03.2017PostEventEmailJob
не имеет никаких значений, а только закомментированные строки? Попробуйте закомментировать и эту строку или добавьте обратно одну изcron
строк и начните заново. - person Máté   schedule 16.03.2017