首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果没有到生产服务器的ssh,Sidekiq-cron将无法工作

如果没有到生产服务器的ssh,Sidekiq-cron将无法工作
EN

Stack Overflow用户
提问于 2020-12-24 22:34:42
回答 1查看 192关注 0票数 0

我在Ruby on Rails上有应用程序。它有电子邮件功能。部署后,我的sidekiq cron不会发送电子邮件。Worker不会启动作业。只有当我连接到ssh上的服务器时,它才能工作。有谁可以帮我?Sidekiq-cron在本地运行。

我使用

代码语言:javascript
复制
grep sidekiq /var/log/syslog

当我断开与服务器的连接时,我看到:

代码语言:javascript
复制
Stopping sidekiq for kdl (production)...
pid=20692 tid=6hkqs INFO: Shutting down
pid=20692 tid=13ozxo INFO: Scheduler exiting...
pid=20692 tid=6hkqs INFO: Terminating quiet workers
pid=20692 tid=13p0b0 INFO: Scheduler exiting...
pid=20692 tid=6hkqs INFO: Pausing to allow workers to finish...
pid=20692 tid=6hkqs INFO: Bye!

当我通过ssh连接时

代码语言:javascript
复制
pid=21478 tid=2fo8q INFO: Cron Jobs - add job with name: test_cron_minutes
pid=21478 tid=2fo8q INFO: Booted Rails 6.0.3.4 application in production environment
pid=21478 tid=2fo8q INFO: Running in ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]
pid=21478 tid=2fo8q INFO: See LICENSE and the LGPL-3.0 for licensing details.
pid=21478 tid=2fo8q INFO: Upgrade to Sidekiq Pro for more features and support: https://sidekiq.org

/config/initializer/sidekiq.rb kiq.rb

代码语言:javascript
复制
schedule_file = 'config/schedule.yml'
if File.exist?(schedule_file) && Sidekiq.server?
      Sidekiq::Cron::Job.load_from_hash YAML.load_file(schedule_file) 
end

/config/idekiq.yml

代码语言:javascript
复制
:concurrency: 1
:queues:
    -default
    -mailers
    -test_worker
    -send_to_subscribed_worker

/config/schedule.yml

代码语言:javascript
复制
send_to_subscribed_job:
    cron: "0 12 * * Mon,Thu"
    class: "SendToSubscribedWorker"
    queue: send_to_subscribed_worker

test_cron_minutes:
    cron: "* * * * *"
    class: "TestWorker"
    queue: test_worker

Gemfile

代码语言:javascript
复制
gem 'redis'
gem 'sidekiq'
gem 'sidekiq-cron'
gem 'capistrano-sidekiq'

sidekiq 6.1.2版本

EN

回答 1

Stack Overflow用户

发布于 2020-12-25 22:36:55

我修复了它:

代码语言:javascript
复制
loginctl enable-linger deploy

systemctl --user daemon-reload

systemctl --user stop sidekiq-production.service

systemctl --user daemon-reload

systemctl --user start sidekiq-production.service

systemctl --user enable sidekiq-production.service
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65439707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档