问题标签 [resque-scheduler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
326 浏览

ruby-on-rails - 作业调度程序 Resque 中的循环以设定的时间间隔运行

我有一个数据库,其中包含一些我想以设定的时间间隔(例如:每 60 秒)发布到 Twitter 的推文/文本。推文应该遍历一个 for 循环并在每个时间间隔发布一条推文。

我已经编写了一个方法,它对一条推文执行此操作,然后休眠 60 秒。

这基本上完成了我想要实现的目标,但需要在后台进行异步处理。我已经尝试并成功安装了 redis/resque,但未能实施和工作。我是 Rails 新手,以前从未设置过后台工作人员/工作。

我在 resque 中实现了一个 Sender.rb 作业

我已经根据文档实现了 resque 并自动自动加载所有作业文件夹。

但我目前遇到了几个问题。像这样,每次我启动工作程序时都会运行 for 循环(我从来没有让它运行)。我需要弄清楚每次工作开始时工作人员如何逐个遍历数据库条目。另外,我如何安排要执行的作业(例如每 60 秒或每 24 小时运行 Sender.rb 作业等)?对不起,这个有点模糊的帖子,但我几天来一直试图解决这个问题,但一无所获。

0 投票
1 回答
105 浏览

ruby-on-rails - Resque Worker:worker中不可用的对象和方法

我的网络应用程序中有以下工作人员

它由以下 resque-scheduler tweet_scheduler.yml 调度

推文发件人:

由他 resque.rake 定义

在 resque web 界面中,我收到以下错误

我还尝试在没有 update_atttribute 方法的情况下实现 tweet_sender.rb,如下所示:

并得到以下错误:

为什么我的方法和标准 rails 方法在我的工作人员中不可用?我是否需要在某处明确要求它们?

0 投票
1 回答
388 浏览

ruby-on-rails - Resque 调度程序加载作业但不入队

我有一个时间表,它在 resque.rake 中定义如下:

时间表 tweet_schedule.yml

每当我运行(以及 redis-server,rails s,通过

)

bundle exec rake environment resque:scheduler 我得到以下输出

所以我假设它正在加载我的 schedusucesfullyle,但看起来它没有被加入队列(到目前为止我已经忽略了命名空间警告)

该计划显示在 resque-scheduler Web ui 中,每当我通过 Web 界面按钮手动设置它时,作业就会成功执行。知道为什么它不能正确加载吗?

用于设置作业的“立即排队”按钮

0 投票
1 回答
1711 浏览

ruby-on-rails - 在使用 Resque-scheduler 和 redis 时,在提到的延迟时间过去后延迟作业未进入主作业队列

我需要执行一项工作,其中每次创建订单时都会将其分配给供应商,如果供应商不接受订单并在指定时间内更新状态,订单将自动拒绝,状态更新为拒绝。我面临的问题是,该作业进入延迟队列,如 resque Web 视图中所示,但在指定的延迟时间后没有移动到主队列延迟失效

这是我的工作。

在我的分配模型中:

在这里,一旦创建了分配记录,状态通常在创建时保持为“已分配”。现在从创建之日起,如果用户在指定时间内没有更新状态,则作业必须自动将状态更新为“已拒绝”。

我也试过这个方法。

他们都将作业发送到 resque 延迟队列,但不将作业或将作业带到主队列执行。

自动拒绝作业在延迟作业列表中排队

此外,当我单击延迟作业的所有计划链接时,作业的时间戳显示没有列出要安排的作业

延迟列表中第一个作业的所有计划

我被这个问题困扰了将近两个星期。请帮忙!如果需要更多信息,请告诉我。与这个有一段艰难的时光。

0 投票
1 回答
137 浏览

ruby-on-rails - Resque Scheduler:当前环境中突出显示的作业被跳过。生产 Heroku

我正试图让我的应用程序在生产中工作。我有一个后台作业设置和一个静态调度程序(resque 和 resque_scheduler)。本地主机上的工人和排队工作没有任何问题。在 heroku 上,该作业显示在 resque_scheuler we UI 中,但从未被处理。它说“当前环境跳过突出显示的作业。”。如图所示,该作业标记为黄色。 具有突出显示的工作人员的调度程序 web ui

这是我的工作,日程安排和 procfile

tweet_sender.rb (工作)

tweet_schedule.yml

档案

我浏览了文档,但找不到任何解释。有谁知道为什么要突出显示这项工作以及如何安排它。

0 投票
1 回答
342 浏览

ruby-on-rails - 在 Resque 邮件程序中设置不同的队列名称

在我的 rails4 应用程序中,我需要每周向所有用户发送一次电子邮件。用户属于不同的部门。我需要根据部门明智的队列名称来组织邮件发送。但是,我不知道如何在发送邮件时将队列名称作为参数。所有邮件使用相同的队列名称“weekly_user_activity_queue”。未设置为如下定义的部门名称队列。我怎样才能做到这一点。代码如下所示:

宝石文件:

应用程序/邮件程序/user_activit_mailer.rb

请帮忙。提前致谢。

0 投票
1 回答
259 浏览

ruby-on-rails - Ruby on Rails resque 任务出错

我正在尝试在我的 ruby​​ on rails 应用程序中使用 resque。

我在 lib/tasks 文件夹中创建了 resque.rake 文件

我已经通过以下行启动了 redis 服务器

我的应用程序中有这个 RakeFile:

但是当我运行以下命令启动 rake

我收到此错误:

我看不到我错过了什么,

有什么建议么 ?

谢谢。

注意:我使用的是 rails 5.0.1

0 投票
1 回答
489 浏览

ruby-on-rails - Resque:不要将多余的工作排入队列?

我有一组按优先级排列的 Resque 队列。对于最低优先级队列中的所有作业,它们没有参数,并且稍后的运行将取代任何先前的运行——例如,它们正在与外部服务同步数据。因此,使用这些作业的多个副本创建积压是没有意义的——连续运行 3 次不会增加任何价值。

但是在忙碌期间,我们确实会积压(仅在此队列上),因为工作人员忙于更高优先级的工作。

我可以通过首先阻止冗余作业排队来防止这种积压​​吗?

0 投票
1 回答
159 浏览

rubygems - badge_label_helper.rb 无法加载 resque 作业

我们正在尝试将 rails 从 4.2 升级到 5.1.4 以及 resque gem。但我们同样得到了以下结果。

文件:/lib/tasks/resque.rake 需要'resque/tasks' 需要'resque-scheduler' 需要'resque/scheduler/server' 需要'resque/scheduler/tasks' 任务“resque:setup” => :environment do ENV ['QUEUE'] = '*' ENV['COUNT'] = '5' 需要 'resque' 需要 'resque-scheduler' 结束

_Trace : QUEUE= rake environment resque:work --trace ** 调用环境 (first_time) ** 执行环境 ** 调用 resque:work (first_time) ** 调用 resque:preload (first_time) ** 调用 resque:setup (first_time) ** 调用环境 ** 执行 resque:setup ** 执行 resque:preload rake 中止!LoadError: No such file to load --badge_label_helper.rb /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:476:in load' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:476:inblock in load_file ' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:661:in new_constants_in' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:475:inload_file' /Users/dinilv/.rvm/gems/ruby- 2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:374:inblock in require_or_load' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:36:in阻塞在 load_interlock' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:12:in Exclusive' block in loading' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/concurrency/share_lock.rb:149:in/Users/dinilv/.rvm /gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:11:in loading' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:36:inload_interlock' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/ activesupport-5.1.4/lib/active_support/dependencies.rb:357: require_or_load' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:335:inindepend_on' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb :251:inrequire_dependency' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/railties-5.1.4/lib/rails/engine.rb:476:in块(2 个级别)在 eager_load!/Users/dinilv/.rvm/gems/ruby-2.4.2/gems/railties-5.1.4/lib/rails/engine.rb:475:ineach' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/railties-5.1.4/lib/rails/engine.rb:475:in块在 eager_load 中!/Users/dinilv/.rvm/gems/ruby-2.4.2/gems/railties-5.1.4/lib/rails/engine.rb:473:ineach' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/railties-5.1.4/lib/rails/engine.rb:473:in急切的加载!/Users/dinilv/.rvm/gems/ruby-2.4.2/gems/railties-5.1.4/lib/rails/engine.rb:354:in eager_load!' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/resque-1.27.4/lib/resque/tasks.rb:45:ineach' /Users/dinilv/.rvm/gems/ruby-2.4 .2/gems/resque-1.27.4/lib/resque/tasks.rb:45:inblock (2 levels) in <top (required)>' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/task.rb:251:in块执行'/Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/ lib/rake/task.rb:251:ineach' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/task.rb:251:in执行'/Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/task.rb:195:in block in invoke_with_call_chain' /Users/dinilv/.rvm/rubies/ruby-2.4.2/lib/ruby/2.4.0/monitor.rb:214:inmon_synchronize' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/task.rb:188:ininvoke_with_call_chain' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/task.rb:217:in块 in invoke_prerequisites' /Users/dinilv/.rvm/gems/ruby -2.4.2/gems/rake-12.1.0/lib/rake/task.rb:215:in each' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/task.rb:215:ininvoke_prerequisites' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/ lib/rake/task.rb:194:in block in invoke_with_call_chain' /Users/dinilv/.rvm/rubies/ruby-2.4.2/lib/ruby/2.4.0/monitor.rb:214:inmon_synchronize'/Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/task.rb:invoke_with_call_chain' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/task.rb:181:in调用' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/application.rb:153:in invoke_task' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/application.rb:109:inblock (2 levels) in top_level' /Users/dinilv/ .rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/application.rb:109:in each' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/application.rb:109:inblock in top_level' /Users/dinilv/.rvm/gems/ruby-2.4.2/ gems/rake-12.1.0/lib/rake/application.rb:118:in run_with_threads' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/application.rb:103:intop_level' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/application .rb:81:in block in run' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/application.rb:179:instandard_exception_handling' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/lib/rake/application.rb:78:in run' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/exe/rake:27:in'/Users/dinilv/。 rvm/gems/ruby-2.4.2/bin/rake:23:in load' /Users/dinilv/.rvm/gems/ruby-2.4.2/bin/rake:23:in' /Users/dinilv/.rvm/gems/ruby-2.4.2/bin/ruby_executable_hooks:15:ineval' /Users/dinilv/.rvm/gems/ruby-2.4.2/bin/ruby_executable_hooks:15:in' 任务: TOP => resque:work => resque:preload_ 命令 :QUEUE=* rake environment resque:work " _rake aborted! LoadError: No such file to load -- badge_label_helper.rb /Users/dinilv/.rvm/gems/ ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:476:in load' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:476:inblock in load_file' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1 .4/lib/active_support/dependencies.rb:661:in new_constants_in' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:475:inload_file'/Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:374:在block in require_or_load' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:36:inload_interlock 的块中'/Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:12:in Exclusive block in loading' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/concurrency/share_lock.rb:149:in'/Users/dinilv/。 rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:11:inloading' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:36:inload_interlock' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:357:independ_on require_or_load' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:335:in' /Users/dinilv/.rvm/gems/ruby -2.4.2/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:251:在require_dependency' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/railties-5.1.4/lib/rails/engine.rb:476:ineager_load 中的块(2 级)!/Users/dinilv/.rvm/gems/ruby-2.4.2/gems/railties-5.1.4/lib/rails/engine.rb:475:ineach' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/railties-5.1.4/lib/rails/engine.rb:475:in块在 eager_load 中!/Users/dinilv/.rvm/gems/ruby-2.4.2/gems/railties-5.1.4/lib/rails/engine.rb:473:in each' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/railties-5.1.4/lib/rails/engine.rb:473:ineager_load!/Users/dinilv/.rvm/gems/ruby-2.4.2/gems/railties-5.1.4/lib/rails/engine.rb:354:in eager_load!' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/resque-1.27.4/lib/resque/tasks.rb:45:ineach' /Users/dinilv/.rvm/gems/ruby-2.4 .2/gems/resque-1.27.4/lib/resque/tasks.rb:45:in block (2 levels) in <top (required)>' /Users/dinilv/.rvm/gems/ruby-2.4.2/gems/rake-12.1.0/exe/rake:27:in' /Users/dinilv/.rvm/gems/ruby-2.4.2/bin/ruby_executable_hooks:15:ineval' /Users/dinilv/.rvm/gems/ruby-2.4.2/bin/ruby_executable_hooks:15:in' 任务:TOP => resque:work => resque:preload(通过使用 --trace 运行任务查看完整跟踪)_ "*

0 投票
1 回答
338 浏览

ruby-on-rails-3 - resque调度程序不排队作业

存在计划以在计划中定义的特定时间执行,但不执行任务。

计划中有一个选项可以手动启动该特定计划任务,并将执行和执行任务。这表明任务可以执行,只是没有自动启动。