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/
我正在开发一个使用Sidekiq和Mandrill在后台发送电子邮件的Rails应用程序。在我的应用程序中,我有2个队列,一个用于用户与我的服务交互(无关),第二个是邮件队列。邮件队列由2个邮件程序使用:一个用于管理用户配置文件,另一个用于与我们的服务交互(无关)。今天我注意到除了Devise发送的确认电子邮件外,用户已经好几天没有收到电子邮件了。另一个队列工作正常,没有任何问题。(所以也许Sidekiq配置不是问题)。例如,让我们以通知用户配置文件更新成功的UserMailer为例:user_mailer.rbdefupdate_user(user)@user=usermail(:t
请参阅下面更新的问题。原始问题:在我当前的Rails项目中,我需要解析大型xml/csv数据文件并将其保存到mongodb中。现在我使用以下步骤:接收用户上传的文件,将数据存入mongodb使用sidekiq对mongodb中的数据进行异步处理。处理完成后,删除原始数据。对于本地主机中的中小型数据,上述步骤运行良好。但是在heroku中,我使用hirefire来动态地上下扩展workerdyno。当worker仍在处理大数据时,hirefire看到空队列并缩减workerdyno。这会向进程发送终止信号,并使进程处于未完成状态。我正在寻找一种更好的解析方法,允许解析进程随时终止(在收到
在我的应用程序中,我有25个worker,它们被不同用户的操作随机使用。每个用户只允许同时进行一项(事件/忙碌)工作。它不能在Controller上被阻止,因为这个想法是不阻止Action创建。需要创建操作,但要保持一致,直到处理完同一用户的所有previos请求,然后才会为同一用户(重新)分配工作人员。如果与此同时,另一位用户请求创建工作,如果剩余24名工作人员中至少有一名可用,则应立即开始工作。有没有什么办法可以找到队列中的行并使用它的参数来构建处理条件?谢谢 最佳答案 您可以使用SidekiqUniqueJobs使用这种方法,