Tag: sidekiq

sidekiq取消列表到预定的工作

我有几个预定的工作运行如下: MyWorker.perform_at(3.hours.from_now, ‘mike’, 1) 我想知道,如果以后再说一小时后,我觉得我想要取消这份工作,我该怎么办呢?

将sidekiq作业直接移至死队列

是否可以将sidekiq作业从SidekiqWorker实例级别直接移动到死队列(即执行时) class MyWorker include Sidekiq::Worker sidekiq_options retry: 9 def perform(name) if name == ‘StackOverflow’ # —-> skip_retry_queue_and_go_to_dead_queue else # do_stuff! end end end

NameError:未初始化的常量Mail :: Parsers :: ContentTransferEncodingParser

有时当我在heroku上发送大量电子邮件时,其中一些失败并出现以下错误: NameError: uninitialized constant Mail::Parsers::ContentTransferEncodingParser 我不知道为什么会这样,但我想也许这可能是因为attachments.inline in mailer使用了attachments.inline in mailer 。 什么想法可能导致这个问题?

多个sidekiq实例可以处理相同的队列

我不熟悉Sidekiq的内部,我想知道是否可以使用相同的配置启动多个Sidekiq实例(处理相同的队列)。 是否有可能2个或更多Sidekiq实例将从队列中处理相同的消息? 更新: 在多台机器上运行Sidekiq时,我需要知道是否存在可能的冲突

前面的冒号:YAML语法

我目前正在项目中使用Sidekiq,我有以下YAML配置文件: :concurrency: 5 :pidfile: /tmp/pids/sidekiq.pid :logfile: log/sidekiq.log staging: :concurrency: 10 production: :concurrency: 20 queues: – default 我之前没有看到在一把钥匙前面有一个冒号,但省略了冒号会产生有趣的结果。 对于:pidfile:例如,前面有冒号,它创建/覆盖没有它的目标文件,它使用已存在的目标文件而不写入它。 这是在某处记录的,还是Sidekiq对某些键的期望?

如何在heroku上的两个不同的应用程序之间共享工作者?

我有两个独立的应用程序在heroku上运行并指向相同的数据库,第一个负责user interface ,第二个用于admin interface ,我使用sidekiq和redis进行后台作业处理,我添加了一个工作者,我能够分享’ redis-server’通过设置环境变量指向相同的Redis提供Addon,现在我也希望共享worker,因为添加额外的worker会花费两倍。 请建议,这是否可能?

监控完成Sidekiq工作的最佳方法是什么?

在用户第一次登录后,我正在使用Sidekiq工作人员完成对Facebook的一些请求。 通常,任务大约需要20秒左右。 我想在同步完成后使用ajax请求将一些信息加载到页面上,但我不确定使用Javascript检查作业完成的最佳方法。 一种可能性是配置Sidekiq工作程序在其余作业完成后设置cookie。 然后我可以使用setTimeout函数在调用load函数之前继续检查cookie。 但我不确定这是否是最佳方式。 我可以使用Redis吗?

Sidekiq和rails 4 actionmailer永远不会发送电子邮件

我在rails 4应用程序中设置了sidekiq,用于发送电子邮件和处理后台作业。 我还设计了我使用devise_async和典型的联系表单电子邮件。 我正在使用Gmail发送电子邮件。 如果我删除sidekiq,它通常通过gmail(设计和联系表单)发送电子邮件,但是当我启用它时,它不起作用(devise_async都不是联系表单)。 Sidekiq显示后台作业开始并成功完成(我也通过sinatra应用程序看到它们已被处理)但电子邮件从未发送过。 在开发过程中,控制台显示发送的电子邮件(使用devise_async和联系表单,因为它们已成功处理sidekiq)。 我已经尝试过的: 我为sidekiq的rails4添加了github分支(我也尝过了主人) 我已经更新并检查redis版本是否大于2.4(它是2.6.14) 我正在使用bundle exec sidekiq运行bundle exec sidekiq 但没有任何效果。 我使用的是ruby 2.0.0-p247。 我还在这个应用程序中使用sidekiq设置图像处理,在开发和生产中都能很好地工作。 我没有做任何花哨的事情,但我正在添加完成代码: 我的邮件代码: def send_message @message = Message.new(message_params) if @message.save ContactMailer.delay.contact_form(@message.id) end end 我的邮件: def contact_form(message_id) message = Message.where(id: message_id).first @email = message.email @message = message.text mail(to: “myemail@gmail.com”, subject: “Message from contact form”) end 和我的生产配置(没有sidekiq它的工作原理): config.action_mailer.delivery_method = […]

为什么“❨╯°□°❩╯(┻┻┻”这样的编码用于方法名称?

我在sidekiq gem中遇到了以下方法。 它刚刚从test_sidekiq.rb调用。 def self.❨╯°□°❩╯︵┻━┻ puts “Calm down, bro” end 这是我能在SO上找到的唯一链接。 谷歌无法理解❨╯°□°❩╯︵┻━┻ 。 为什么Ruby没有抱怨这种编码? 这种方法的目的是什么(不太看它的身体)? 为什么作者@ mike-perham使用这个名字? 只是为了好玩,或测试一些界限?

Rails 4.2 – Sidekiq不在开发中发送电子邮件

我有一个rails应用程序,我有一个方法,我发送了很多电子邮件。 我想asynchronously执行此操作。 要做到这一点,我试图使用Sidekiq ,但我不能让它正常工作 – 它不发送任何电子邮件。 以前发送电子邮件,所以我确定我的电子邮件设置已正确设置。 在我的gemfile我有这个: gem ‘sidekiq’ 我已经运行了bundle install 。 我还安装了redis ,遵循RailsCasts#366上的说明。 我已经使用以下命令启动了sidekiq : bundle exec sidekiq ,这导致了下图中可以看到的内容: 在application.rb我有以下内容: config.active_job.queue_adapter = :sidekiq 我尝试发送这样的电子邮件: Mailer.deliver_new_competition_notification(member.user, @competition).deliver_later! 我没有收到任何错误,但电子邮件永远不会被发送。 那么,我错过了什么吗?