我正在尝试使用sidekiqworker,或多或少将图像文件保存到数据库(使用载波)。要保存的文件很少,它们是从视频文件中提取的关键帧。这就是那个worker的意思。我的图片uploader定义了几个版本,如下所示:classKeyframeUploader问题是,当我尝试运行我的SidekiqWorker时,它会抛出Celluloid::FiberStackError:stackleveltoodeep并且解决这个问题的唯一方法是删除我的版本定义。只有在没有为上传者分配任何版本时它才有效。我曾尝试将保存过程移至另一个工作人员或使用Carrierwave::Backgrounder,但
我有特定类型的作业,我希望重试的频率高于默认Sidekiq间隔设置的频率。这目前可能吗?理想情况下,作业将每5秒重试一次,最多一分钟。不完全确定这是目前插入Sidekiq作业的微不足道的事情。 最佳答案 根据:https://github.com/mperham/sidekiq/wiki/Error-Handling你可以这样做:classWorkerincludeSidekiq::Workersidekiq_retry_indo|count|5endend 关于ruby-on-rail
我在Rails4应用程序中设置了sidekiq,用于发送电子邮件和处理后台作业。我还设计了我正在使用的devise_async和典型的联系表单电子邮件。我正在使用gmail发送电子邮件。如果我删除sidekiq,它通常会通过gmail(设计和联系表单)发送电子邮件,但是当我启用它时,它不起作用(devise_async和联系表单都没有)。Sidekiq显示后台作业成功启动和完成(我也通过sinatra应用程序看到它们已被处理)但电子邮件从未送达。在开发中,控制台显示已发送电子邮件(使用devise_async和联系表单,因为它们已使用sidekiq成功处理)。我已经尝试过的:我已经为s
我有一个Rails4应用程序,我将它与sidekiq结合使用来运行异步作业。我通常在Rails应用程序之外运行的作业之一是大量复杂的SQL查询,这些查询实际上无法通过ActiveRecord建模。这组SQL查询与我的Rails应用程序的联系是它应该在我的Controller操作之一被调用时执行。理想情况下,我会在Controller中将我的Rails应用程序的作业排队,以便Sidekiq继续运行查询。现在它们存储在一个外部文件中,我不完全确定让Rails运行上述SQL的最佳方法是什么。感谢任何解决方案。 最佳答案 我同意Sharag
我使用Puma作为网络服务器,使用Sidekiq作为我的队列运行器。对于多种事物(数据库连接、Redis连接、其他外部服务),我使用ConnectionPoolgem来管理对连接的安全访问。现在,根据我是在Sidekiq还是Puma的上下文中运行,我需要这些池的大小不同(分别与Sidekiq线程或Puma线程的数量一样大,而且它们是不同的)在您的初始化程序中,根据执行上下文了解连接池大小的最佳方法是什么?谢谢! 最佳答案 您使用Sidekiq.server?当不在Sidekiq进程本身内运行时返回nil。
我有几个这样运行的预定作业:MyWorker.perform_at(3.hours.from_now,'mike',1)我在想,如果稍后,比如说一个小时后,我想取消这份工作,我会怎么做呢? 最佳答案 我最近写了一些代码来处理这个问题,它可以在我的sidekiq-statusgem分支中找到。您可以在此处查看或使用它:https://github.com/Robinson7D/sidekiq-status(目前,您必须将它用作gemfile中的git:信息,直到项目的主分支实现它)要使用它,首先要存储job_identifier:jo
我有这个Sidekiqworker:classDealNoteWorkerincludeSidekiq::Workersidekiq_optionsqueue::emaildefperform(options={})ifoptions[:type]=="deal_watch_mailer"deal_watchers=DealWatcher.where("deal_id=?",options[:deal_id])deal_note=DealNote.find(options[:deal_note_id])current_user=User.find(options[:current_us
我目前在一个项目中使用Sidekiq,我有以下YAML配置文件::concurrency:5:pidfile:/tmp/pids/sidekiq.pid:logfile:log/sidekiq.logstaging::concurrency:10production::concurrency:20queues:-default我以前从未见过在键前面有冒号,但省略冒号会产生有趣的结果。例如,在:pidfile:的情况下,如果前面有冒号,它会创建/覆盖没有它的目标文件,它会使用已经存在的文件并且不会写入它。这是否记录在某处,或者这只是Sidekiq期望某些键的方式?
我目前使用延迟作业来异步处理作业。我没有创建worker,而是经常使用.delay方法。我想转到Sidekiq,但是我的工作类型太多,无法确保所有工作都是线程安全的。所以我想并行运行DelayedJob和Sidekiq,并一次迁移一种类型的作业。既然DelayedJob和Sidekiq都提供了.delay方法,那么如何区分两者呢?还有其他潜在问题吗? 最佳答案 对于Sidekiq2.17.1及更高版本,在Rails初始化程序的某处,调用以下命令:Sidekiq.hook_rails!Sidekiq.remove_delay!并且您将
我有一个Rails应用程序,我可以在其中发送大量电子邮件。我想执行此操作异步。为此,我尝试使用Sidekiq,但我无法让它正常工作——它不发送任何电子邮件。发送电子邮件之前有效,所以我确定我的电子邮件设置正确。在我的gemfile中我有这个:gem'sidekiq'我已经运行了bundleinstall。我还安装了redis,按照RailsCasts#366上的说明进行操作.我已经使用以下命令启动了sidekiq:bundleexecsidekiq,结果如下图所示:在application.rb我有以下内容:config.active_job.queue_adapter=:sideki