Tag: sidekiq

LoadError:无法加载这种文件 – 机架/ deflater在没有RVM的Docker中

我正在尝试Dockerize我的Rails / Sidekiq应用程序,并得到: LoadError: cannot load such file — rack/deflater 21:11:48 sidekiq.1 | /usr/local/bundle/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:274:in `require' 当通过工头启动Sidekiq时 它适用于本地运行应用程序,但不在Docker容器中。 我相当确定它有一个事实,我有RVM本地安装,但不是在Docker镜像,因为我只是使用ruby:2.4.2图像。 那么,也许我的代码正在做一些必要的假设,安装RVM? 我不确定。

Ruby&Redis / Skidekiq URI :: InvalidURIError:redisscheme不接受registry部分:bsc_redis:6379(或者是错误的主机名?)

在我的docker服务器上我在sidekiq / redis URL URL错误: Sidekiq.configure_client do |config| config.redis = { url: "redis://bsc_redis:6379", size: 1 } end 我明白了 URI :: InvalidURIError:schemeredis不接受registry部分:bsc_redis:6379(或坏主机名?)从/usr/local/lib/ruby/2.0.0/uri/generic.rb:214:in initialize' from /usr/local/lib/ruby/2.0.0/uri/common.rb:218:in从/usr/local/lib/ruby/2.0.0/uri/common.rb:218:in initialize' from /usr/local/lib/ruby/2.0.0/uri/common.rb:218:in parse' from /usr/local/lib/ruby/2.0.0/uri/common.rb:747:in parse” log_info' from /usr/local/bundle/gems/sidekiq-4.2.9/lib/sidekiq/redis_connection.rb:20:in创build' log_info' from /usr/local/bundle/gems/sidekiq-4.2.9/lib/sidekiq/redis_connection.rb:20:in .rb:131:在redis=' from (irb):4:in block in irb_binding'from /usr/local/bundle/gems/sidekiq-4.2.9/lib/sidekiq.rb:83:in configure_client' from (irb):4 from /usr/local/bundle/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in start from /usr/local/bundle/gems/railties-3.2.13 /lib/rails/commands/console.rb:8:in start' from […]

与Docker上的sidekiq工作者分离时钟进程

我目前正致力于将我的环境从Heroku移出,部分应用程序运行一个时钟进程,启动一个Sidekiq后台作业。 据我所知,Sidekiq由一个客户端和一个服务器组成,客户端发送作业到Redis队列,服务器取出队列的请求并处理它们。 我现在试图将我的应用程序拆分到Docker上的以下容器中: – Redis容器 – 时钟容器(使用Clockwork gem) – 工作者容器 – Web应用程序容器(Rails) 但是,我不知道如何分裂这个Sidekiq服务器和客户端。 本质上,时钟容器需要在其上运行Sidekiq,以便客户端每隔一段时间就可以将作业发送到Redis队列。 但是,工作容器也应该运行Sidekiq(服务器),以便他们可以处理作业。 我认为分割不同容器之间的责任应该是很有可能的,因为Heroku允许你在不同的dynos上拆分它。 我可以想象做到这一点的一种方法是分配时钟容器来取消一个不存在的队列,这样它就不会从队列中取出任何作业,然后设置工作人员从一个存在的队列中取出。 然而,这对我来说似乎并不是最理想的方式,因为它仍然会在这个不存在的队列中检查新的作业。 任何提示或指导我如何开始这个呢?

Docker Sidekiq开始 – 与Puma的Rails应用程序

下面的Dockerfile应该在容器启动的时候启动sidekiq: FROM phusion/baseimage:0.9.18 ENV RUBY_MAJOR "2.0" ENV RUBY_VERSION "2.0.0-p643" ENV RUBYGEMS_VERSION "2.5.2" ENV BUNDLER_VERSION "1.11.2" ENV NODE_VERSION "5.5.0" ENV BOWER_VERSION "1.7.6" ENV APT_PACKAGES " \ git imagemagick \ gcc g++ make patch binutils libc6-dev \ libjemalloc-dev libffi-dev libssl-dev libyaml-dev zlib1g-dev libgmp-dev \ libxml2-dev libxslt1-dev libpq-dev libreadline-dev libsqlite3-dev htop \ " ENV APT_REMOVE_PACKAGES "openssh-server" RUN apt-get […]

Sidekiq使用redis的不正确的URL

我build立了我的Docker环境,并试图让sidekiq与我的其他服务一起使用docker docker-compose up ,但是sidekiq在尝试连接到错误的 redis URL时抛出一个错误: redis_1 | 1:M 19 Jun 02:04:35.137 * The server is now ready to accept connections on port 6379 sidekiq_1 | Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED) 我相当有信心,在我的Rails应用程序中没有引用将有Sidekiq连接到本地主机,而不是docker-compose.yml中创build的redis服务: version: '3' services: db: image: postgres web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: – .:/app […]

在Docker中运行Sidekiq – 处理Docker容器的终止?

我正在使用Rails + Sidekiq + Docker。 我打算在Docker容器中部署我的Sidekiq进程。 我的工作是相当长时间的运行,并且具有不可预知的持续时间(基本上,它正在执行对数据库的长时间运行的查询 – 可能长达10-15分钟) 当我杀死我的docker集装箱(作为新部署的一部分)时,我如何告诉Sidekiq优雅地停下来,以避免现有的工作中断? 有没有人以前面临类似的情况。 如果是这样,你如何解决这个问题?

如何把sidekiq放入一个rails应用程序中的Docker?

我正在使用rails,sidekiq和docker。 我的docker-compose.yml文件 sidekiq: build: . command: bundle exec sidekiq -C config/sidekiq.yml links: – db – redis config / sidekiq.yml文件 :pidfile: ./tmp/pids/sidekiq.pid :logfile: ./log/sidekiq.log :queues: – default 运行docker docker-compose up ,sidekiq服务无法正确启动。 sidekiq_1 | No such file or directory @ rb_sysopen – /testapp/tmp/pids/sidekiq.pid sidekiq_1 | /usr/local/bundle/gems/sidekiq-3.5.3/lib/sidekiq/cli.rb:365:in `initialize' sidekiq_1 | /usr/local/bundle/gems/sidekiq-3.5.3/lib/sidekiq/cli.rb:365:in `open' sidekiq_1 | /usr/local/bundle/gems/sidekiq-3.5.3/lib/sidekiq/cli.rb:365:in `write_pid' sidekiq_1 | […]