在本地主机上的开发模式下(OSX°我开始使用foremanstart我的Procfile是:postgresql:postgres-D供应商/postgresqlredis:redis服务器供应商/redis/db/redis.confredis-slave:redis-servervendor/redis-slave/db/redis.confsidekiq:sidekiq-Cconfig/sidekiq.yml-qdevise,1-qdefault-qmailerssidekiq_web:thin-Rsidekiq.rustart-p9292邮件:mailcatcher-f网络:b
我有一个脚本可以在几千条记录上正常运行,我开始学习sidekiq以帮助定期在数百万条记录上运行它。我有两张table;一张满是汽车零件的表格和另一张包含销售统计数据的表格。我通过公司提供的API访问销售统计数据,我的脚本从汽车零件表中获取一行并从零件统计API请求数据并将其存储在另一个表中,用于与另一个数据集一起进行报告。我想知道的是,在使用sidekiq时,在我的汽车零件表中标记记录以了解它们已被处理的最佳方式是什么?我认为使用1或0进行简单标记可能有效,但添加上次修改日期或添加日期可能更有效?哪个选项最适合使用Ruby、Sidekiq和MySQL尽快处理所有记录?我知道遇到插入问题
编辑:其实很简单,我忘了传入site和token我在Heroku上设置了Sidekiq和Redis,我能够让它处理像这样的非常简单的工作:order_worker.rbclassOrderWorkerincludeSidekiq::Workersidekiq_optionsretry:falsedefperform(num_orders)x=3*5endend但根据Sidekiq网络用户界面,更复杂的作业不断失败。我需要以某种方式包含ShopifyAPI和Faker吗?我不太清楚正在运行的是什么。整个应用程序、gems和所有这些都是在workerdyno中创建的吗?order_work
我有一个用例,当将来用户发生某些事件时,我想清除一些sidekiq作业。一种方法是将job_id存储在某个地方(比如redis),然后使用它搜索和删除作业。Sidekiq::ScheduledSet.new.find_job([job_id]).delete但是我必须将它存储在redis中,并在队列中的所有作业中线性搜索。另一种方法是在worker中添加一个额外的参数。然后使用它进行搜索并删除。Sidekiq::ScheduledSet.new.find{|j|j.queue=='my_queue'&&j.args[0]=="my_tag_user_id"}.map(&:delete)
我正在学习本教程https://www.pubnub.com/blog/2015-12-08-building-video-sharing-app-server-messaging-ruby/关于构建视频共享应用程序。它有点过时了,我已经不得不解决一个View问题才能走到这一步,但我现在对这个最新的问题很迷茫。我相信它与sidekiq有关。当我尝试上传视频时,它似乎可以正常工作并显示在数据库中,但我收到“视频仍在编码中”。信息。这是日志:2017-03-13T22:00:14.729Z11109TID-ova30dq94WebmVideoEncoderJID-540aa74110e63
我在Rails5应用程序上将SideKiq与HerokuRedis结合使用。随着时间的推移,我的内存利用率呈线性增长,导致我不得不每个月左右升级我的计划。我的负载一直比较平稳。我有一个noeviction的驱逐政策,正如SideKiqwiki中所推荐的那样。这是否意味着我的内存占用量会随着时间的推移继续有增无减? 最佳答案 您应该运行2个Redis实例,一个用于缓存,另一个专用于Sidekiq。这是Sidekiqwiki中的一个条目,对此进行了解释:ManypeopleuseRedisasacache(itworksgreatasa
我想每15分钟通过cron作业将数据从pandas存储到redis,下面是我的代码:-我每15分钟使用以下代码将数据导入pandas,并通过cron作业将其发送到redis字典mydict2。importsysimportpickleimportredisr=redis.StrictRedis(host='localhost',port=6379,db=0)test_dict1=results_df.set_index('user')['ua'].T.to_dict()p_mydict=pickle.dumps(test_dict1)r.set('mydict2',p_mydict)我
我有两台服务器:网络服务器(前端)和分析(后端)服务器。我需要通过Sidekiq将作业从前端服务器传递到后端服务器。我的技巧是:在网络服务器和后端服务器上安装Sidekiq。我现在有前端Sidekiq和后端Sidekiq。配置前端Sidekiq,使其指向后端Sidekiq的Redis服务器。也就是说,两个Sidekiq共享同一个Redis数据库服务器。现在,我需要从前端Sidekiq入队一个作业,然后从后端Sidekiq执行一段代码。我应该怎么做? 最佳答案 Sidekiq是一个分布式消息队列,它的全部目的是为您描述的用例服务。只需
我正在尝试在低级别调试sidekiq。为了做到这一点,我希望记录所有查询。Redis客户端记录器可以通过以下方式启用:redis.client.logger=Logger.new(STDOUT)redis.set('a','b')结果:D,[2014-05-13T11:35:34.787624#46689]DEBUG--:Redis>>SETabD,[2014-05-13T11:35:34.788274#46689]DEBUG--:Redis>>0.27ms它似乎适用于所有使用redis-rb的库。但对于sidekiq则不行,因为无法直接访问Redis::Client对象。如何为sid
我想让sidekiq处理我的geocoder后台进程我从来没有真正使用过sidekiq,所以不用说我遇到了一些麻烦。我不断收到undefinedmethodgeocoded_by错误。我的代码如下。Assets/worker/geocode_workerclassGeocodeWorkerincludeSidekiq::Workerextend::Geocoder::Model::ActiveRecorddefperformgeocoded_by:addressreverse_geocoded_by:latitude,:longitudedo|obj,results|ifgeo=res