我们正在从Heroku迁移到AWS,我注意到Sidekiq统计数据莫名其妙地重置,原因不明。这发生在连接到同一个Redis实例的多个不同应用程序中,每个应用程序在initializers/sidekiq.rb中设置了自己的namespace。所有Sidekiq计数器的统计数据同时重置。看起来我们可能会暂时断开Redis连接,但这只是一个疯狂的猜测,无论如何我不确定如何缓解它。这是一个常见问题吗?有我可以调整的设置吗? 最佳答案 有人正在运行FLUSHDB或FLUSHALL命令并清除Redis中的数据。启动时可能是其中一个应用程序。
我目前在我的Rails应用程序中使用Sidekiq(免费)和HerokuRedis(免费)。我注意到HerokuRedis说它的连接限制为20。这会影响/限制我可以使用Sidekiq执行的后台作业的数量吗?本质上,我在此应用程序中使用Sidekiq的全部目的是发送电子邮件以获取时事通讯。时事通讯准备就绪后,通过单击按钮发送电子邮件。此按钮从我的EditionsController执行以下代码:defsend_notificationusers=User.allusers.eachdo|user|EditionMailer.with(edition:@edition,user:user)
我有一个Rails5应用程序,我开始使用Sidekiq、Heroku和Redis将各种作业转移到后台。到目前为止,我有ResetFinanceDataWorker,它有一个同名的类。//reset_finance_data_worker.rbclassResetFinanceDataWorkerincludeSidekiq::Workersidekiq_optionsretry:falsedefperform()endend我可以通过调用ResetFinanceDataWorker.perform_in(10.seconds)来调用它。理想情况下,我希望在一个文件中有多个工作人员,如下
Rails5.2、DockerCompose、Sidekiq、Redis。这是docker-compose文件:version:'3.6'services:redis:image:'redis:4.0-alpine'command:redis-serverports:-'6379:6379'volumes:-'redis:/data'sidekiq:depends_on:-'redis'build:.command:bundleexecsidekiq-Cconfig/sidekiq.ymlvolumes:-'./:/app'env_file:-'.env'api:build:.volu
因此,我在redis.conf中重命名了几个危险的Redis命令,之后SidekiqWEBUI停止显示任何统计信息,但Sidekiq运行良好。我的问题是Sidekiq使用哪些Redis命令?在Sidekiq初始值设定项中配置服务器和客户端时,我应该指定哪些重命名? 最佳答案 没有规范列表,但当前的Sidekiq支持Redis2.8,因此3.0+中没有任何新命令。 关于ruby-on-rails-Sidekiq使用哪些Redis命令?,我们在StackOverflow上找到一个类似的问题:
我在生产环境中有一项托管在AWS上的服务,它应该运行2个Sidekiq进程:在两台负载均衡机器上各运行1个。但是,似乎有2个额外的进程我无法追溯到它们的来源。我已经尝试重新启动两台机器,希望它能杀死任何幽灵进程,但两个未知进程仍然存在,而另外两个已经重新启动,所以它们可能在其他地方运行。幽灵进程导致引发“未初始化常量:”的问题,因此我认为它们没有应用程序代码并且是错误连接的。我现在让他们安静了。如何追溯这两个进程的源头?从图中可以看出,主机描述不是很有用。 最佳答案 可能有帮助的两种方法-Redis客户端列表-您可以列出所有连接到R
为了拥有一个松散耦合的架构,我可以拥有一个具有Redis和Sidekiq的服务器,以及另一个我可以创建多个实例的独立工作服务器吗?我现在拥有的是:服务器A:RedisSidekiqRails转换图片服务器B:Rails通过controller调用ServerA的Sidekiq的perform_async(image)我想做的是:服务器A:RedisSidekiq服务器B(可扩展):Rails转换图片-SidekiqWorkers-服务器C:Rails调用服务器A将作业推送到队列,以便服务器B可以通过从服务器A的队列中拉取来转换它们。 最佳答案
我正在尝试向某些用户异步发送电子邮件:这是昨天完美运行的方法链:DiscussionMailer.delay.new_reply_notification()在控制台中运行它似乎完美无缺,因为它会返回工作人员ID。我可能错了,这就是那个键实际上是什么,但正如您所看到的,从事情的rails方面来看,一切正常。2.0.0p247:004>DiscussionMailer.delay.new_reply_notification(User.last,Reply.last,Discussion.last,Forum.last)UserLoad(0.6ms)SELECT"users".*FROM
因此我们在Rails应用程序中使用Sidekiq作为我们的队列管理系统。我们还使用Sidetiq来管理计划任务和重复任务。目前,大约有200-300个计划任务将在几分钟到30天内随时运行。我只想传输Redis数据库rdb文件,但由于一些配置更改,Rails项目路径已更改(因此任务将无法再运行)什么是将整个计划任务队列转移到新项目路径的首选方法,但手动不是这种情况。ruby2.1.6rails3.2.22Sidekiq3.4.2Redis2.8.4 最佳答案 使用DUMP和RESTORE:redis-cli-hsource_hostd
我正在为一些长时间运行的作业使用sidekiq3.4.2和redis3.0.3,大约两到四个小时后,我收到以下错误:ERROR:heartbeat:EXECABORTTransactiondiscardedbecauseofpreviouserrors.EXECABORTTransactiondiscardedbecauseofpreviouserrors./home/deployer/apps/wripl-capture/shared/bundle/ruby/2.2.0/gems/redis-3.2.1/lib/redis/pipeline.rb:79:infinish'/home/