我有一个名为Order的模型,创建一个Order需要很多时间,所以当用户执行POST时,我想获取这些参数并使用后台作业处理它们。我正在使用Sidekiq,我想知道传递给perform(..)操作的最佳方式是什么,传递参数的.to_json表示,或者只是ActionController::参数类型?这有关系吗?知道请求中传递的参数可以有10.000多个条目。 最佳答案 perform_async的所有给定参数都将序列化为JSON。有效负载的大小只会影响使用的内存占用量和到redis的往返时间。10K项应该不会有任何其他问题(除非您将那
目前,我们在生产中有一个流程为我们所有的员工服务。如何添加新的进程/sidekiq实例?有没有办法产生一个专用于特定队列的新进程? 最佳答案 关于Sidekiq的所有内容,theSidekiqDocumentation是最好的起点。在您的情况下,您将对“AdvancedOptions”文档特别感兴趣。 关于ruby-on-rails-如何添加一个新的sidekiq进程?,我们在StackOverflow上找到一个类似的问题: https://stackover
我最近在我的Rails应用程序中安装了Sidekiqgem以在后台进程中发送电子邮件。然而,我还没有收到一封要发送的电子邮件,到目前为止,StackOverflow搜索让我两手空空。我不太了解Sidekiq或Redis,所以部分问题可能是我真的不知道要搜索什么或如何解释错误消息。在安装Sidekiq之前,电子邮件可以使用.deliver方法正常发送。当它尝试再次发送时,我收到一条错误消息“Connectionresetbypeer”,然后是“已到达文件末尾”。还有一条包含“sysread_nonblock”并提及openssl目录的警告消息。2015-09-13T01:59:23.75
我是RubyonRails的新手,我面临一个问题,即在本地使用redis(redis://localhost:6379)的sidekiq工作正常(被触发)但不能在heroku中使用rediscloud。可能是什么问题?我的procfile包含:web:bundleexecpuma-Cconfig/puma.rbworker:bundleexecsidekiq-qcritical-qapplications-qdefault 最佳答案 wiki说明了如何在Heroku上设置您的Redis提供程序:herokuconfig:setRED
我有一个Rails应用程序,它通过ActiveJob和Sidekiq运行一些后台作业。终端和日志文件中的sidekiq日志显示如下:2016-10-18T06:17:01.911Z3252TID-oukzs4q3kActiveJob::QueueAdapters::SidekiqAdapter::JobWrapperJID-97318b38b1391672d21feb93INFO:start有没有什么方法可以像普通SidekiqWorker的日志一样显示作业的类名?更新:Sidekiqworker的日志是这样的:2016-10-18T11:05:39.690Z13678TID-or4o
我有一个app1和app2(nginx、puma和sidekiq)的单个Rails应用程序设置,在app1上有负载均衡器(即负载均衡到app1和app2)和db服务器(postgres和redis)上的nginx。app1和app2上的Sidekiq都指向db上的redis。我在路由文件中配置了sidekiqui,如下所示:验证:admin,lambda{|a|管理员?}做需要'sidetiq/web'安装Sidekiq::Web=>'/sidekiq'结束在我的开发环境中运行良好,但在生产环境中,负载均衡器路由到app1或app2。所以查看“/sidekiq”只会显示该应用程序服务器
我在我的Rails应用程序上使用带有sidekiq的redis,我看到了奇怪的行为:很多连接重置,而且每个请求在Redis上花费的时间通常超过1秒。我正在运行rails4.2.7.1,ruby2.3.1sidekiq4.2.8redis3.2.1(最近从3.3.2降级)它在heroku上运行任何想法将不胜感激。 最佳答案 请升级到Sidekiq4.2.9。 关于具有sidekiq奇怪行为的Redis,我们在StackOverflow上找到一个类似的问题: ht
我在两台服务器上运行我的应用程序。每个人都有一份工作,检查every2.minutesdorunner"MailmanCheckJob.perform_later"end现在这个作业在每台服务器上运行。它检查新电子邮件并处理它们。如果电子邮件处理需要4-5分钟。一条消息被两个作业接收。我如何确保每封电子邮件只被挑选一次。一旦所有处理结束,每封电子邮件都会被标记为已读。它连接到远程redis。它们由monit监控。是否有在集群中运行sidekiq的选项,以便只有一台服务器选择并运行作业。-A 最佳答案 您正在Sidekiq中寻找定期工
我在理解这个配置段时遇到了一些麻烦:Sidekiq.configure_clientdo|config|config.redis={size:SIDEKIQ_THREADS}endSidekiq.configure_serverdo|config|config.options['concurrency']=SIDEKIQ_THREADS客户端(Redis中用于在Redis中排队作业的部分)看起来可以配置为与Redis建立多个连接。这是否会以某种方式加快作业的排队速度?并发选项有什么作用? 最佳答案 客户端可以是多线程的,例如彪马。在
我在带有rvm和passenger的railsDEVELOPMENT环境中使用sidekiq。在应用程序启动时,我需要手动启动Sidekiq:bundleexecsidekiq--environmentdevelopment-Csidekiq.yml有没有办法在应用程序启动或重新启动(而不是服务器启动)时自动启动它?谢谢 最佳答案 使用foremangem。使用foreman,您可以在Procfile中声明您的应用程序运行所需的所有进程。查看下面使用puma和sidekiq的应用程序Procfile定义示例:web:bundleex