Sidekiq一直在开发模式下完美地工作。现在我正尝试在生产环境中使用它,所有的作业都只是排队等待,从来没有运行过。有没有人能告诉我如何解决这个问题的正确方向?
m528fe3b1#
请检查sidekiq进程是否正在运行:
ps aux | grep sidekiq
如果不是,请尝试先在前台运行sidekiq并检查输出。
bundle exec sidekiq -e production
eeq64g8w2#
在很多情况下,这是因为我没有在config/sidekiq.yml中正确地声明这个特定服务的队列。
config/sidekiq.yml
2j4z5cfb3#
这个答案看起来很相关:Sidekiq not processing queue如果Sidekiq没有被告知配置文件(在生产中可能需要不同的咒语),那么它可能没有使用正确的队列。
btqmn9zl4#
只是一个头了所有,因为我结束了这个页面试图找出为什么我的Rails Sidkiq工作没有移动'包围'。1.检查您的sidekiq控制台在您的终端1.我的问题困扰了我将近一个小时...我在代码中有一个“byebug”断点,把它放在后台工作中是愚蠢的。这会把你的工作搞砸的。很明显...我不是故意把这个断点放在那里的。我发誓:)
tp5buhyn5#
我的解决方案:1.)查看应用程序的Sidekiq Web UI(在此可以看到作业进入排队状态)。2.)手动重试失败的作业3.)检查运行Sidekiq的服务器上的日志:(通常这是日志所在的位置,如果您在分段上执行此操作)
tail -f /var/www/yourappname/current/log/staging.log
这通常是你会看到一个更详细的错误消息,为什么Sidekiq不能处理排队的作业。在我们的例子中,有一个环境变量指向一个特定于我们的部署配置的错误端点。
dly7yett6#
确保您的应用程序sidekiq进程运行
$ ps aux | grep sidekiq server 26813 0.0 0.0 14228 1084 pts/11 S+ 11:27 0:00 grep --color=auto sidekiq server 27936 0.3 0.6 1178904 153240 ? Sl Apr17 46:02 sidekiq 5.2.7 app1 [0 of 10 busy]
该示例显示只有一个sidekiq进程正在运行(app1)。利用如果你的应用不在列表中,那么你必须为你的应用启动sidekiq进程,在这个例子中是app2。gem capistrano-sidekiq让您的生活更轻松:
capistrano-sidekiq
$ cap production sidekiq:start 00:00 sidekiq:start 01 $HOME/.rbenv/bin/rbenv exec bundle exec sidekiq --index 0 --pidfile /var/www/app2/shared/tmp/pids/sidekiq-0.pid --environment produ… ✔ 01 [email protected] 0.400s
并且APP2进程将被激活。现在再检查一遍
$ ps aux | grep sidekiq server 25857 8.6 7.6 3073532 1870244 ? Sl 11:15 1:02 sidekiq 5.2.8 app2 [0 of 10 busy] server 26813 0.0 0.0 14228 1084 pts/11 S+ 11:27 0:00 grep --color=auto sidekiq server 27936 0.3 0.6 1178904 153240 ? Sl Apr17 46:02 sidekiq 5.2.7 app1 [0 of 10 busy]
队列应该正常运行
14ifxucb7#
使用capistrano-sidekiq gem解决了我们的问题
r6vfmomb8#
如果你在Heroku上,请确保在资源选项卡上启用了Sidekiq:)
8条答案
按热度按时间m528fe3b1#
请检查sidekiq进程是否正在运行:
如果不是,请尝试先在前台运行sidekiq并检查输出。
eeq64g8w2#
在很多情况下,这是因为我没有在
config/sidekiq.yml
中正确地声明这个特定服务的队列。2j4z5cfb3#
这个答案看起来很相关:Sidekiq not processing queue如果Sidekiq没有被告知配置文件(在生产中可能需要不同的咒语),那么它可能没有使用正确的队列。
btqmn9zl4#
只是一个头了所有,因为我结束了这个页面试图找出为什么我的Rails Sidkiq工作没有移动'包围'。
1.检查您的sidekiq控制台在您的终端
1.我的问题困扰了我将近一个小时...我在代码中有一个“byebug”断点,把它放在后台工作中是愚蠢的。这会把你的工作搞砸的。很明显...我不是故意把这个断点放在那里的。我发誓:)
tp5buhyn5#
我的解决方案:
1.)查看应用程序的Sidekiq Web UI(在此可以看到作业进入排队状态)。
2.)手动重试失败的作业
3.)检查运行Sidekiq的服务器上的日志:
(通常这是日志所在的位置,如果您在分段上执行此操作)
这通常是你会看到一个更详细的错误消息,为什么Sidekiq不能处理排队的作业。在我们的例子中,有一个环境变量指向一个特定于我们的部署配置的错误端点。
dly7yett6#
确保您的应用程序sidekiq进程运行
该示例显示只有一个sidekiq进程正在运行(app1)。利用如果你的应用不在列表中,那么你必须为你的应用启动sidekiq进程,在这个例子中是app2。gem
capistrano-sidekiq
让您的生活更轻松:并且APP2进程将被激活。现在再检查一遍
队列应该正常运行
14ifxucb7#
使用
capistrano-sidekiq
gem解决了我们的问题r6vfmomb8#
如果你在Heroku上,请确保在资源选项卡上启用了Sidekiq:)